概述

经常会在mysql字段中存josn_encode后的数据,如果数据中的字段有中文,那么会被转义,这个时候查询的时候就要加上一些反斜杠

解决

例如数据字段的值是:

{"device_list":[["\u96f7\u795eKU27F144M","JT00ER0090008N2UH01T"]],"short_series":{"\u96f7\u795eKU27F144M":"1"}}

那么要查询\u96f7\u795eKU27F144M就要使用sql

LIKE '%"\\\\\u96f7\\\\\u795eKU27F144M"%';

前面要加上4个斜杠,配合php的话,php代码可以使用json_ecode来转义字符串

$pn = str_replace('\\','\\\\\\\\\\',json_encode($pn)); // 数据存储的json中文会转码
$pn = trim($pn,'"'); // json编码会自动加上引号,这边去掉
$sql = 'LIKE \'"%{$pn}"%\'';
最后修改:2023 年 12 月 30 日
如果觉得我的文章对你有用,请随意赞赏