Mysql | ワイルドカード(%、_ など)を使用したファジークエリの詳細な説明

Mysql | ワイルドカード(%、_ など)を使用したファジークエリの詳細な説明

ワイルドカードのカテゴリ:

%パーセント ワイルドカード: 任意の文字が任意の回数出現できることを示します (0 回も可能)。

_下線付きワイルドカード: 一致できる文字は 1 文字のみであり、それ以上でもそれ以下でもなく、1 文字のみであることを意味します。

いいね演算子:

LIKE の役割は、後続の検索パターンでは比較のために直接的な等価一致ではなくワイルドカードを使用するように MySQL に指示することです。

注: ユニバーサル マッチャーなしで like 演算子を使用すると、結果は = と同じになります。SELECT * FROM products WHERE products.prod_name like '1000'; は結果 1000 にのみ一致し、JetPack 1000 には一致しません。

1)% ワイルドカードの使用率:

「yves」で始まるレコードに一致します: (「yves」レコードを含む)

SELECT * FROM products WHERE products.prod_name like 'yves%';

「yves」を含むレコード(「yves」を含むレコードを含む)に一致します

SELECT * FROM products WHERE products.prod_name like '%yves%';

「yves」で終わるレコードに一致します(「yves」のレコードを含みますが、「yves」のレコードは除きます。つまり、yves の後にスペースがあるレコードです。注意してください)。

SELECT * FROM products WHERE products.prod_name like '%yves';

2)_ワイルドカードの使用:

SELECT * FROM products WHERE products.prod_name like '_yves';

一致する結果は、「yyves」のようなレコードです。

SELECT * FROM products WHERE products.prod_name like 'yves__';

一致する結果は、「yvesHe」のようなレコードです。(アンダースコアは 1 文字のみと一致し、それ以上でもそれ以下でもありません)

注記:

大文字と小文字に注意してください。あいまい一致、つまりテキストの一致を使用する場合、MySQL は大文字と小文字を区別する場合と区別しない場合があります。この結果は、ユーザーが MySQL をどのように構成するかによって異なります。大文字と小文字が区別される場合、YvesHe のようなレコードは、"yves__" のような一致条件と一致しません。

末尾のスペースに注意してください。「%yves」は「heyves」のようなレコードとは一致しません。

NULL および % ワイルドカードは任意の文字と一致しますが、NULL とは一致しないことに注意してください。つまり、SELECT * FROM products WHERE products.prod_name like '%'; は、products.prod_name が NULL であるレコードとは一致しません。

ヒントと提案:

ご覧のとおり、MySQL ワイルドカードは非常に便利です。ただし、この機能にはコストがかかります。ワイルドカード検索は通常、前述の他の検索よりも処理に時間がかかります。ワイルドカードを使用する際に覚えておくべきヒントをいくつか紹介します。

ワイルドカードを過度に使用しないでください。他の演算子で同じ目的を達成できる場合は、他の演算子を使用する必要があります。

ワイルドカードを使用する必要がある場合は、絶対に必要な場合を除き、検索パターンの先頭で使用しないでください。検索パターンの先頭にワイルドカードを配置すると、検索速度は最も遅くなります。

ワイルドカード文字の配置に注意してください。間違った場所に配置すると、期待した数値が返されない可能性があります。

追加知識: MySQL LIKEファジークエリ%_ワイルドカードはすべてのデータをクエリします

最近、ページング クエリ テストのバッチを作成しました。クエリの結果、2 つの特殊文字 _ % を使用すると、すべてのデータがクエリされることがわかりました。クエリ条件は機能せず、結果はテストで期待したものとは異なりました。

後で、これら 2 つの特殊文字は SQL LIKE クエリのワイルドカードであり、任意の文字を表すことができることがわかりました。

最終的に2つの解決策を思いつきました

1.これらの2つの特殊文字をエスケープして達成する

2. 従来の LIKE クエリ メソッドの代わりに、より高速な内部関数 INSTR を使用します。

INSTR() 関数は、文字列内の部分文字列が最初に出現する位置を返します。 str 内に部分文字列が見つからない場合、INSTR() 関数はゼロ (0) を返します。

以下では、INSTR 関数の構文について説明します。

INSTR(name,'Xiao Ming') のユーザーから * を選択します。

上記の記事Mysql | ワイルドカード(%、_など)を使用したファジークエリの詳細な説明は、編集者があなたと共有するすべてのコンテンツです。これが参考になれば幸いです。また、123WORDPRESS.COMをサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)
  • MySQL データベースのステートメント ワイルドカード ファジー クエリの概要
  • MySQL でのワイルドカードを使用したファジークエリの実装に関する簡単な説明
  • MySQL ファジークエリにおけるワイルドカードエスケープについての簡単な説明
  • MYSQL 必読ノート 第 8 章: フィルタリングにワイルドカードを使用する
  • MySQLでワイルドカードを使用する際の注意点
  • MySql のファジークエリワイルドカードの使用に関する詳細な紹介
  • mysql 正規表現 LIKE ワイルドカード
  • mysql ワイルドカード (sql 高度なフィルタリング)

<<:  Linux sedコマンドの使用

>>:  Vue3とTypeScriptを組み合わせたプロジェクト開発の実践記録

推薦する

HTML マウス CSS コントロール

一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...

Vue 名前付きスロットの基本的な使用例

序文名前付きスロットは、スロット内の「name」属性を使用して要素にバインドされます。知らせ: 1....

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

Windows 10 での MySQL 8.0.16 のインストールと設定のチュートリアル

この記事では、参考までにMySQL 8.0.16のインストールと設定方法のグラフィックチュートリアル...

Vue が DingTalk の出勤カレンダーを実装

この記事では、DingTalkの勤怠カレンダーを実装するためのVueの具体的なコードを参考までに共有...

Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します

iノードとは何ですか? inode を理解するには、まずファイル ストレージから始める必要があります...

携帯電話番号が合法かどうかを判断するWeChatアプレットのサンプルコード

目次シナリオ効果コード要約するシナリオ登録ページに携帯電話番号を入力し、登録インターフェイスを要求す...

MySQLのストレージエンジンの詳細な説明

MySQL ストレージ エンジンの概要ストレージ エンジンとは何ですか? MySQL のデータは、さ...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

Nginx の動的および静的分離実装ケースのコード分析

静的と動的の分離動的リクエストと静的リクエストはミドルウェアを通じて分離され、不要なリクエストの消費...

MySQLのパラメータについてお話しましょう

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

CentOS 6 ZLMediaKit のコンパイルとインストール分析

Centos6にZLMediaKitをインストールするZLMediaKit の作者は Ubuntu ...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...