例えばテーブルと:
create table test (id int primary key, tags json);
insert into test (id, tags) values (1, '["Lorem ipsum", "dolor", "sit"]'), (2, '["foo", "bar"]');
これは一致します:
select id from test where json_search(tags, 'one', 'Lorem%') is not null
しかし、これはしません:
select id from test where json_search(tags, 'one', 'lorem%') is not null
理想的には、両方のケースを照合できるようにしたいと思います。
5.7.16 Percona XtraDBクラスターでの実行
その他の場合、データを変更できず、適切な結果が必要な場合:
select
id
from test
where json_search(UPPER(tags), 'one', UPPER('lorem%')) is not null
もちろん遅くなるので、実際のデータサイズでテストする必要があります
これは、テーブルまたはフィールドで使用される照合が原因である可能性があります。大文字と小文字が区別される場合、「L」は「l」と一致しません。照合を知るために、これを実行してください:
SHOW CREATE TABLE test
大文字と小文字を区別しない照合順序名は、「_ ci」で終わります。 照合の詳細については、ここをクリックしてください 。