mysql里查询 json 数据
1.mysql里有个字段存储的是json格式的数据,
2.现在需要从页面传递参数到php再进行搜索匹配关键字,
3.将关键字页json_encode后,去like匹配这个字段,匹配不到
解决方案:
1.只针对中文搜索,存的数据一样是json,josn里面的中文一般是unicode编码的,将关键字编码一下.
2.在mysql里,“\" 是需要转义的。两种解决办法:
a)因此使用”\\”来查询,数据依然是空。(mysql斜杆转义之后,会去转义别的字符,所有要得到斜杆,需要在加一个斜杆去转义。)最后改为四个斜杆“\\\\”,这样才得到一个“\”。
b)然后将\替换成_(下划线)再去检索就能查找出来。
php demo:
$payer=trim(@$_POST[‘payer‘]);
if (!empty($payer)) {
$json_payer=str_replace("\\","_",json_encode($payer));
$where .= " and extend_params like ‘%" . $json_payer ."%‘ ";
}
时间: 2024-10-13 22:50:04