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ページのネイティブVIDEOタグはダウンロードボタン機能を隠します

Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...

CentOs7 64 ビット MySQL 5.6.40 ソースコードのインストール プロセス

1. インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [r...

tinyMCEの使い方と体験の詳細な説明

tinyMCE の使用方法の詳細な説明初期化TinyMCE を初期化するときは、ページの HEAD ...

jQueryは時間セレクタを実装する

この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例

HTML チェックボックスとラジオボタンスタイルの美化の簡単な例チェックボックス: XML/HTML...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

MySQL 5.7 zip版(zip版)のインストールと設定手順の詳細

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

CMD で MySQL データベースを操作するときに中国語の文字化けが発生する問題の解決方法

Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...

MySQL のロングトランザクション例の詳細な説明

序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

HTML コードを書くための 30 のヒント

1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...

ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明

この記事の冒頭で、以前書いた入門記事の間違いを訂正したいと思います。初心者を再び誤解させないように、...