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

推薦する

WebStormはVue3統合APIのソリューションを正しく識別できません

1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...

CSS3はブラウザのスクロールバーのスタイルを変更します

注意: この方法は、Webkit ベースのブラウザにのみ適用されます。ブラウザのスクロールバーが広す...

MySQL InnoDBエンジンのインデックスとストレージ構造の詳細な説明

序文Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだ...

データベースの水平セグメンテーションを実装するための2つのアイデア

導入インターネット アプリケーションの普及に伴い、膨大なデータの保存とアクセスがシステム設計における...

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

vue-router からのフロントエンドルーティングの 2 つの実装

目次モードパラメータハッシュ履歴ハッシュ履歴.push()ハッシュ履歴.replace()アドレスバ...

Baidu百科事典UIの開発動向について議論する

<br />百度百科事典の正式版がついにオンラインになりました。2年間の「テスト版」の帽...

dockerログマウントの問題を解決する

重要なのは、ローカルサーバーに書き込み権限がないことですキーはここにあります(アクセス拒否)。私は肯...

MySQLで最新のトランザクションIDを照会する方法

前に書いた内容: ビジネス ロジックの判断を行うために、最新のトランザクション ID を表示する必要...

Centos7 システムでの MySQL マスター スレーブ同期構成スキーム

序文最近、高可用性プロジェクトに取り組む際には、データの同期が必要になっています。ノードが 2 つし...

角度コンテンツ投影の詳細な説明

目次単一コンテンツ投影マルチコンテンツ投影単一条件のコンテンツ投影アプリ-人物-htmlアプリ担当者...

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...