mysql裏查詢 json 數據php
1.mysql裏有個字段存儲的是json格式的數據,mysql
2.如今須要從頁面傳遞參數到php再進行搜索匹配關鍵字,sql
3.將關鍵字頁json_encode後,去like匹配這個字段,匹配不到json
解決方案:ide
1.只針對中文搜索,存的數據同樣是json,josn裏面的中文通常是unicode編碼的,將關鍵字編碼一下.編碼
2.在mysql裏,「\" 是須要轉義的。兩種解決辦法:spa
a)所以使用」\\」來查詢,數據依然是空。(mysql斜杆轉義以後,會去轉義別的字符,全部要獲得斜杆,須要在加一個斜杆去轉義。)最後改成四個斜杆「\\\\」,這樣才獲得一個「\」。code
b)而後將\替換成_(下劃線)再去檢索就能查找出來。unicode
php demo:it
$payer=trim(@$_POST['payer']);
if (!empty($payer)) {
$json_payer=str_replace("\\","_",json_encode($payer));
$where .= " and extend_params like '%" . $json_payer ."%' ";
}