【问题标题】:SQL JSON Column (IgnoreCase)SQL JSON 列(忽略大小写)
【发布时间】:2017-01-01 19:11:50
【问题描述】:
我有一个 JSON 格式的 SQL 列,看起来像 data->'$.name',我想问一下是否可以对此列进行忽略大小写,例如
UPPER(data->'$.name').
示例:
select * from TYPE_hugo_DATA WHERE UPPER(data->'$.name') = UPPER('hugo');
【问题讨论】:
标签:
java
mysql
sql
json
mysql-json
【解决方案1】:
问题是您对包含引号的原始 json 值进行了等于 (")。
如果您想检索不带引号的 json 值,您可以这样做 ->> 是 JSON_UNQUOTE(JSON_EXTRACT()) 的简短语法:
select * from TYPE_hugo_DATA WHERE UPPER(data->>'$.name') = UPPER('hugo');
或
select * from TYPE_hugo_DATA WHERE JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) = UPPER('hugo');