序文最近、プロジェクトで次のような要件に遭遇しました。データ テーブル内の指定されたコンテンツを含む結果セットを取得する必要があります。このフィールドのデータ型はテキストで、保存されているコンテンツは json 形式です。具体的なテーブル構造は次のとおりです。 テーブル「product」を作成します( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '製品名' COLLATE 'utf8mb4_general_ci', `price` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00' COMMENT '製品価格', `suit` TEXT NOT NULL COMMENT 'ストアIDを保存するための適用可能なストアJSON形式' COLLATE 'utf8mb4_general_ci', `status` TINYINT(3) NOT NULL DEFAULT '0' COMMENT 'ステータス 1-正常 0-削除済み 2-リストから削除済み', `create_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'リリース時間', `update_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '変更時刻', BTREE を使用した主キー (`id`) ) COMMENT='製品テーブル' 照合='utf8mb4_general_ci' エンジン=InnoDB AUTO_INCREMENT=1 ; 表のデータは次のとおりです。 現在の要件: suit->hotel に 10001 を含むデータを検索します。 Google と Baidu で検索すると、次の解決策が見つかります。 オプション1:'%"10001"%' のような適合する製品から * を選択します。 #Likeメソッドはインデックスを使用できず、パフォーマンスが悪く、精度が欠けています オプション2:select * from product where suit LOCATE('"10001"', 'suit') > 0; # LOCATEメソッドにはLIKEメソッドと同じ問題がある オプション3:suit != '' かつ json_contains('suit'->'$.hotel', '"10001"') である product から * を選択します。 #MySQL 組み込みの json 関数を使用して検索します。サポートには MySQL 5.7 以上が必要で、高精度ですが、全文インデックスは使用できません。 オプション4(最終的に採用されたオプション):select * from product where MATCH(suit) AGAINST('+"10001"' IN BOOLEAN MODE); #フルテキスト インデックスを使用できます。MySQL キーワードのデフォルトの制限は少なくとも 4 文字です。mysql.ini で ft_min_word_len=2 を変更すると、再起動後に有効になります。 MATCH() AGAINST() の詳細な使用方法については、MySQL リファレンス マニュアルを参照してください。 https://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html 要約するこれで、MySql ファジー クエリ json キーワード検索ソリューション例に関するこの記事は終了です。より関連性の高い MySql json キーワード検索コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 独自の FTP および SFTP サーバーを構築するプロセスの紹介
>>: HTML 画像 img タグ_Powernode Java アカデミー
MySQL 8.0 for Windows v8.0.11 公式無料バージョン 64 ビット1. デ...
Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...
目次まず結論から質問解決Promiseを使用してコールバック関数をカプセル化する要約するまず結論から...
必要な方はどなたでも参考にしてください。試してみて問題が見つかった場合は、メッセージを残してお知らせ...
データベースのインストール中に次のエラーが発生しました: 解決策は次のとおりです。 1. binディ...
123WORDPRESS.COM では、さまざまな環境での MYSQL の他のバージョンのインストー...
1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...
目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...
今日、私はブログサイト shoptalkshow を閲覧していて、非常に興味深いこのインターフェース...
1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...
最近では、モバイルデバイスがますます普及しており、ユーザーがスマートフォンやタブレットを使用して W...
静的ウェブサイトをホストできるサーバーは数多くあります。この記事では、nginx、apache、to...
<br />ブラウザが次世代のXHTMLを処理できるようになる前に、このよりリッチなコン...
<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...
著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに...