• 欢迎访问IT乐园(o゚▽゚)o
  • 推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。

mysql 使用 like 模糊搜索 json_encode 的数据

php fhy 6年前 (2018-09-04) 3848次浏览 0个评论

工作中存储到 mysql 的数据是 json 类型的,在列表使用 like 模糊搜索时搜索不到,使用下面的方法可解决:

$name = str_replace('"','',json_encode($name));
$name = str_replace("\\",'_',$name);
# 昵称
if (isset($searchData['nickname'])) {
    $name = str_replace('"','',json_encode($searchData['nickname']));
    $name = str_replace("\\",'_', $name);
    $search[] = ['snapshot', 'like', "%{$name}%"];
}

原因是:
1、第一步是去除 json_encode 转义的后字符串带的双引号

2、把转义后的 unicode 编码数据中的“\”替换成“_”就可直接搜索出来了,要不就得跟数据库的数据完全匹配才可以


IT 乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 使用 like 模糊搜索 json_encode 的数据
喜欢 (1)
关于作者:
九零后挨踢男
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址