概述
经常会在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}"%\'';