MySQL ファジークエリステートメントコレクション

MySQL ファジークエリステートメントコレクション

SQL ファジークエリステートメント

一般的なファジーステートメントの構文は次のとおりです。

SELECT フィールド FROM テーブル WHERE フィールド Like 条件

条件に関しては、SQL は次の 4 つの一致モードを提供します。

1. %: 0 個以上の任意の文字を表します。あらゆるタイプと長さの文字に一致します。場合によっては、中国語の場合は 2 つのパーセント記号 (%%) を使用して表します。

SELECT * FROM [user] WHERE u_name LIKE '%三%'

「Zhang San」、「Zhang Mao San」、「Three-legged Cat」、「Tang Sanzang」など、u_name に文字「three」が含まれるすべてのレコードが検索されます。さらに、u_nameに「三」と「猫」の両方を含むレコードを検索する必要がある場合は、and条件を使用します。

SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

使用する場合

SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'

「三脚猫」は検索できますが、条件に合う「张猫三」は検索できません。

2. _: は任意の 1 文字を表します。任意の 1 文字と一致します。これは、式ステートメントの文字の長さを制限するためによく使用されます。

SELECT * FROM [user] WHERE u_name LIKE '_三_'

「唐三藏」と、u_name が 3 文字で、中央の文字が「三」である他の名前のみを検索します。

SELECT * FROM [user] WHERE u_name LIKE '三__';

「三脚猫」のように最初の文字が「三」である 3 文字の名前のみを検索します。

3. [ ]: 括弧内にリストされている文字の 1 つを表します (正規表現と同様)。文字、文字列、または範囲を指定します。一致はそれらのいずれかである必要があります。

SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'

「Zhang San」、「Li San」、「Wang San」が見つかります(「Zhang Li Wang San」は見つかりません)。

[ ] 内に連続した文字がある場合(01234、abcdeなど)は、「0-4」、「ae」のように省略できます。

SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'

「Old 1」、「Old 2」、...、「Old 9」が見つかります。

4. [^ ]: 括弧内にリストされていない単一の文字を表します。その値は [] と同じですが、一致するオブジェクトは指定された文字以外の文字である必要があります。

SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'

「張」「李」「王」という名前ではない「趙三」「孫三」などが見つかります。

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';

「古い 1」から「古い 4」を除外し、「古い 5」、「古い 6」などを検索します。

5. クエリの内容にワイルドカードが含まれている場合

ワイルドカードのため、特殊文字「%」、「_」、「[」のクエリ ステートメントを正常に実装することはできません。ただし、特殊文字を「[ ]」で囲むことで、正常にクエリを実行できます。これに基づいて、次の関数を記述します。

関数 sqlencode(str)

str=replace(str,"[","[[]") 'この文は先頭になければなりません str=replace(str,"_","[_]")

str=replace(str,"%","[%]")

sqlencode=文字列

終了関数

クエリを実行する前に、検索する文字列をこの関数で処理することができます。

上記はSQLファジークエリ文の詳細な内容です。追加事項がある場合は、123WORDPRESS.COMの編集者までご連絡ください。

以下もご興味があるかもしれません:
  • MySQL でよく使われる SQL 文
  • よく使われるMySqlクエリ文を整理する(23種類)
  • 最も完全なMySQLクエリステートメントコレクション
  • MySQL ステートメントの配置と概要の紹介
  • MySQL DML ステートメントの概要
  • MySQL ステートメントの概要
  • MySQLデータテーブルで使用されるSQL文の配置

<<:  MacOS Catalina アップグレード後の VMware ブラック スクリーン問題に対する完璧な解決策の詳細な説明

>>:  Nodeイベントループの包括的な理解

推薦する

フロントエンドJavaScriptの約束

目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...

HTML における if 判断の使用

Django Web開発の過程で、HTMLを書く際にバックエンドから同じ名前のリスト変数が渡されるが...

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

IE のテキストモード! DOCTYPE の役割の紹介

前の記事で説明したフォームの自動入力の問題を解決した後、新しい問題が発生しました。ページの一部のスタ...

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違いHTTP: インターネットで最も広く使用されているネットワーク プロ...

ins タグと del タグの属性と使用法

insとdel は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、また...

MYSQL の binlog 最適化に関する考察の要約

質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...

Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用

cellspacing は表内のセル間の距離です。セルパディングは、表のセル内の空白スペースです。一...

CSS における重要なカスケード概念の詳細な説明

最近、プロジェクトの過程で問題に遭遇しました。メニューバーを常に上部に表示し、後続の要素をその下に表...

Docker Compose を使用して ELK を迅速にデプロイする (テスト済みで効果的)

目次1. 概要1.1 定義1.2 機能説明2. ELKを展開する2.1 ディレクトリとファイルを作成...

MySQLでNULL値を判定する際の落とし穴事例

目次序文Mysql の case when 構文:事例実践:要約:序文今日、プログラムを開発している...

Nginx インストールの詳細なチュートリアル

1. Nginxの簡単な紹介Nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリ...

MySQL の 6 つの一般的な制約タイプの詳細な説明

目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...

JS 正規マッチングの落とし穴の記録

最近、JS の正規表現マッチングの落とし穴を発見したのですが、その時はあまりにも奇妙だったので、何か...

MySQL マルチテーブル結合クエリ例の説明

実際のプロジェクトでは、複数のテーブル間に関係が存在します。 1 つのテーブル内のすべてのデータを取...