工作中存储到 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 编码数据中的“\”替换成“_”就可直接搜索出来了,要不就得跟数据库的数据完全匹配才可以