我有一个 MySQL 查询,其中按 json 字段进行过滤:
SELECT id, username
FROM (SELECT id,
Json_extract(payload, '$.username') AS username
FROM table1) AS tmp
WHERE username = 'userName1';
它返回 1 行,如下所示:
1, "userName1"
看到条款中没有的引号了吗?
我需要的是使WHERE
子句不区分大小写。
但当我这样做时
WHERE username LIKE 'userName1';
它返回 0 行。我不明白为什么会这样=
尽管没有双引号,但子句仍然有效。
If I do
WHERE username LIKE '%userName1%';
现在也返回该行,因为%%
考虑引号:
1, "userName1"
但当我这样做时
WHERE username LIKE '%username1%';
它返回 0 行,所以与通常的 MySQL 不同LIKE
它在某种程度上区分大小写。
我做错了什么以及如何以不区分大小写的方式过滤 json 有效负载?
编辑============================================
猜测是COLLATE
应该在这里使用,但到目前为止我不明白如何使它工作。