我有一个像这样的JSON字段。
{"address": "nicholas street, lidcombe, nsw 2141", "display": "Nicholas Street, LIDCOMBE, NSW 2141"}
我想检索从第一个字母开始的地址。例如,如果用户键入“N”,则应检索从N开始的所有地址。我有像这样的SQL语句
SELECT addresses
FROM Addresses
WHERE JSON_EXTRACT(addresses, '$.display') LIKE "N%"
但我得到一个空值。
答案 0 :(得分:1)
一个选项使用REGEXP
:
SELECT addresses
FROM Addresses
WHERE addresses REGEXP '"address":"N.*","display":".*"' ;
答案 1 :(得分:0)
您正在获取NULL数据,因为JSON_EXTRACT返回" Nicholas Street, LIDCOMBE, NSW 2141"
表示文本以双引号和空格开头,因此LIKE "N%"
不起作用。所以最终的查询是:
SELECT addresses
FROM Addresses
WHERE JSON_EXTRACT(addresses, '$.display') LIKE "\" N%"
在此测试:http://rextester.com/YVS22096
注意:修改 LIKE 子句。我只是提到你为什么得到NULL输出