mysql里查询 json 数据php
1.mysql里有个字段存储的是json格式的数据,mysql
2.如今须要从页面传递参数到php再进行搜索匹配关键字,sql
3.将关键字页json_encode后,去like匹配这个字段,匹配不到json
解决方案:ide
1.只针对中文搜索,存的数据同样是json,josn里面的中文通常是unicode编码的,将关键字编码一下.编码
2.在mysql里,“\" 是须要转义的。两种解决办法:spa
a)所以使用”\\”来查询,数据依然是空。(mysql斜杆转义以后,会去转义别的字符,全部要获得斜杆,须要在加一个斜杆去转义。)最后改成四个斜杆“\\\\”,这样才获得一个“\”。code
b)而后将\替换成_(下划线)再去检索就能查找出来。unicode
php demo:it
$payer=trim(@$_POST['payer']);
if (!empty($payer)) {
$json_payer=str_replace("\\","_",json_encode($payer));
$where .= " and extend_params like '%" . $json_payer ."%' ";
}