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イベントループの包括的な理解

推薦する

CSS の高度な使い方(実戦で活用)

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

フレームセットの高さを設定する際のインターフェース変形の解決策

現在、プロジェクトを作成しました。インターフェースは次のとおりです。これはフレームセットを使用して行...

Dockerで作成したコンテナを削除する方法

Dockerで作成したコンテナを削除する方法1. まず、docker -s -aコマンドを使用してす...

Linux DMAインターフェースの知識ポイントの詳細な説明

1. 2種類のDMAマッピング1.1. 一貫性のあるDMAマッピング主に長期間使用されるエリアをマッ...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

Vue3の状態管理の使用方法の詳細な説明

目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...

CSS3で実装された3Dトンネル効果

達成された効果実装コードhtml <div class="scene"&g...

git bash を使用して Linux にログインするための ssh の設定方法

1. まず、Linux サーバー上で公開鍵ファイルと秘密鍵ファイルを生成します。デフォルトの保存ディ...

Vueのメソッドとプロパティの詳細な説明

Vueのメソッドとプロパティ1. 方法使用法 1メソッド: {メソッド名: function(){}...

同じ IP のアクセス頻度を制限するように nginx を設定する方法

1. nginx.conf の http{} に次のコードを追加します。 limit_conn_zo...

Linux でファイルを削除するときに「操作は許可されていません」というプロンプトが表示される場合の対処方法

同僚からよく聞かれるのですが、ファイル/ディレクトリを削除すると「操作は許可されていません」というエ...

React Native JSIはRNとネイティブ通信のサンプルコードを実装します

目次JSIとはJSIの違いiOS で JSI を使用するiOS 設定RN側の構成jsはパラメータ付き...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...

vue構成ファイルはルーティングとメニューインスタンスコードを自動的に生成します

目次前面に書かれたルータ.jsonルート生成メニュー生成効果要約する前面に書かれたルートを繰り返し記...

Node.js ファイルのコピー、フォルダの作成、その他の関連操作

NodeJS は次のファイルをコピーします:通常、小さなファイルのコピー操作では、ストリーム パイプ...