4
我需要一些MYSQL查询正则表达式的帮助来搜索包含具有精确模式的单元格的行。我是MYSQL正则表达式的新手。使用REGEXP进行MYSQL查询 - make-it非贪婪
这是命名为TEST_TABLE一个示例表(json_value是一个数组的JSON字符串)
|id | json_value
-----------------------------------------------------------------------------------------------
| 1 | {"field_198":false,"field_4":"From quality office","field_9":"product with high quality","field_10":"comment"}
| 2 | {"field_198":true,"field_4":"From ordering office","field_9":"back to quality office","field_10":"comment"}
| 3 | {"field_198":true,"field_4":"From ordering office","field_9":"cancelled","field_10":"comment"}
| 4 | {"field_198":true,"field_4":"Return to quality office","field_9":"product ok","field_10":"comment"}
如果我想获得的所有行:
- field_4 containing "quality" string, the query should to return id 1 and 4
- field_9 containing "quality" string, the query should to return id 1 and 2
- field_4 containing "ordering" string, the query should to return id 2 and 3
我希望的例子是concludent。
我曾尝试使用此查询
SELECT id from test_table WHERE json_value REGEXP 'field_4":".*quality.*';
但field_9第2行
另一个查询返回id为1,2和4,因为是贪婪,找到了“质量”(我知道,这是一个愚蠢的正则表达式)
SELECT id from test_table WHERE json_value REGEXP 'field_4":"[^quality]*quality.*';
但仅返回ID 1
我已经readed很多在互联网上的帖子,但没有成功。 正则表达式应该如何得到正确的行?
编辑 还有一认为,要更加明确,从搜索的第一部作品是从阵列中的全键,但第二部分的值,如“%字符串%”
谢谢
如果你是在MySQL 5.7看看JSON_CONTAINS – Mihai
我在Cpanel与Mysql 5.6.28 – vasilenicusor