我有字符串等{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}
搜索在查詢中使用的正則表達式
我想搜索「5」 B陣列的內部意味着「5」而不是在任何其他內部MySQL查詢。
什麼是對於
我有字符串等{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}
搜索在查詢中使用的正則表達式
我想搜索「5」 B陣列的內部意味着「5」而不是在任何其他內部MySQL查詢。
什麼是對於
簡單而有效的解決方案是REGEXP '.*"B":\\[["0-9,]*"5"["0-9,]*\\]'
馬克·貝克正則表達式幾乎回答了你:PHP已經爲JSON字符串解碼的方法。這比自己分析更容易:
http://php.net/manual/en/function.json-decode.php
編輯:我看到你的評論,這個信息被存儲在數據庫中。在這種情況下,我不會將json字符串直接存儲在數據庫中。通過將所有信息保存在一個列中,您有點擊敗關係數據庫的目的。
是的PHP有,但我想在查詢中使用,所以我需要正則表達式 – mukund
你讓它變得更加困難比它必須。只需在表格中添加額外的列,以便您可以利用他們努力工作的算法來提高效率。你試圖實施的只是工作速度慢,效率低下。對於需要查看代碼的其他人來說,這也會非常不清楚和混淆。 –
由於它是JSON,使用json_decode:
$str = '{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}';
$obj = json_decode($str);
echo $obj->{'B'}[2];
輸出:
5
that't真的,但我需要正則表達式來查找它裏面的查詢不在PHP – mukund
你可以嘗試這樣的事情:
REGEXP '"B":\[([^"\]]")*5"'
如果是JS ON,爲什麼不簡單地json_decode()呢? –
它存儲在數據庫中,並在搜索我想搜索每條記錄我不能解碼每條記錄,並將它們進行比較 – mukund
如果數據已被正確地歸一化,那麼這不會是一個問題 –