-2

我有类似的字符串{"A":["3", "4", "5", "6"],"B":["3", "4", "5", "6"],"C":[{"2":"y"},{"3":"y"},{"4":"y"},{"5":"y"}],"D":["3", "4", "5", "6"]}

我想在 B 数组中搜索“5”表示“5”,而不是在任何其他内部 mysql 查询中搜索。

什么是正则表达式

4

4 回答 4

2

Mark Ba​​ker 几乎为你回答了这个问题:PHP 已经有了解码 json 字符串的方法。这比解析自己更容易:

http://php.net/manual/en/function.json-decode.php

编辑:我看到您的评论说此信息存储在数据库中。在这种情况下,我不会将 json 字符串直接存储在数据库中。通过将所有信息保存在一列中,您有点违背了关系数据库的目的。

于 2013-07-16T08:22:52.680 回答
1

简单有效的解决方案是REGEXP '.*"B":\\[["0-9,]*"5"["0-9,]*\\]'

于 2013-07-18T07:07:56.620 回答
0

既然是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
于 2013-07-16T08:27:21.967 回答
-1

你可以尝试这样的事情:

REGEXP '"B":\[([^"\]]")*5"'
于 2013-07-16T08:37:24.507 回答