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 ."%' ";

        }