前提・実現したいこと
JSONカラムを含むテーブルを作成し
JSONのKeyを指定して柔軟な検索が出来るようにしたいです。
部分一致は出来たのですが、先頭一致が出来ないのは腑に落ちません。
MySQLで出来ないのであればPostgresSQLにしようかと検討中です。
具体例
※testdatabase という名前のSCHEMA を作成しました
以下のテーブルを作成
sql
1CREATE TABLE `d_kensadata` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT, 3 `data` json DEFAULT NULL, 4 PRIMARY KEY (`id`), 5 UNIQUE KEY `id_UNIQUE` (`id`) 6) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 7
データは以下
sql
1INSERT INTO `testdatabase`.`d_kensadata`(`data`)VALUES('{"堅牢度":"4"}'); 2INSERT INTO `testdatabase`.`d_kensadata`(`data`)VALUES('{"堅牢度":"3","汗":"強力"}'); 3INSERT INTO `testdatabase`.`d_kensadata`(`data`)VALUES('{"堅牢度":"5","汚染":"弱","メモ":"テスト"}'); 4INSERT INTO `testdatabase`.`d_kensadata`(`data`)VALUES('{"メモ":"検査なし"}');
部分一致検索は出来ました
sql
1SELECT * FROM testdatabase.d_kensadata 2WHERE data->'$."メモ"' LIKE '%検査%'
結果1レコード
発生している問題・エラーメッセージ
ところが前方一致(先頭一致)がうまくいきません
sql
1SELECT * FROM testdatabase.d_kensadata 2WHERE data->'$."メモ"' LIKE '検査%'
結果 0 レコード
試したこと
PostgresSQLでは先頭一致が出来ました。
SCHEMAのつくり方などに問題があるのでしょうか?
補足情報に環境を記載します。
不足している情報がありましたらご指摘いただけますと幸いです。
よろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
WindowsServer 2019 Datacener
Version 1809
64bit Japanese(AWS EC2)
MySQL 8.0.17 for Win64 on x86_64(MySQL Comunity Server -GPL)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/10 02:17 編集