SQL クエリ フィールドがステートメントに含まれる問題について話す
SQL ファジー クエリと言えば、最初に思い浮かぶのは like キーワードでしょう。特定のフィールドを含むデータをクエリする必要がある場合、多くの場合、「%keyword%」クエリ メソッドを使用します。具体的なコード例については、この記事を参照してください
前書き
SQL のあいまいクエリに関して言えば、最初に思い浮かぶのは like キーワードでしょう。
特定のフィールドを含むデータをクエリする必要がある場合、多くの場合、「%keyword%」クエリ メソッドを使用します。例:
SELECT ... FROM 表名 WHERE 字段名 LIKE '%关键字%'
これは典型的な「XXX を含む」メソッドとみなされますが、フィールドに特定の文字を含むデータをクエリする必要がある場合はどうすればよいでしょうか?
たとえば、連絡先データ テーブル ConnectName があり、名前を記録するフィールドがあります。 Xiaolan と Haiyuan という名前の人の連絡先を知りたいです。通常の状況では、まず次のことが考えられます:
SELECT * FROM ConnectName WHERE name = '小兰' OR name = '灰原'
このアプローチはこの目的を達成できます。このとき、突然「コナン」などの別の人物をチェックしたい場合は、SQL 構造を変更して Where 条件文を追加する必要があります:
SELECT * FROM ConnectName WHERE name = '小兰' OR name = '灰原' OR name = '柯南'
OR 条件クエリ自体が効率的であることがわかっています。下位の構造的に変化するステートメントは、MyBatis で実装するのが少し面倒です (もちろん、フィールドを走査して挿入するだけで実装できます)。
もっとシンプルにできないでしょうか?すべてのキーワードをまとめて、Where 条件を 1 つだけ使用してそれを達成できますか?
CHARINDEX が登場します
この時点で、CHARINDEX キーワードを使用して、テキスト文字列内の特定のフィールドが表示される位置を返すことができます。さらにお楽しみに、栗を取り出します:
CHARINDEX('李白','曹操很帅') =0
上の栗では、曹操は非常にハンサムであるため、李白キーワードが含まれていないため、見つからず、0 が返されます
CHARINDEX('李白','李白很帅') =1
同じ栗には Li Bai キーワードが含まれているため、キーワードの先頭の最初の単語のインデックスが返されるため、1 が返されます。
使い方を理解した後、CHARINDEX キーワードを使用して最適化できます。 SQL ステートメント:
SELECT * FROM ConnectName WHERE CHARINDEX(name ,'小兰灰原柯南')>0
名前フィールドに対応する名前が「Conan Xiaolan Haibara」に表示される場合、CHARINDEX 関数は 1 より大きい値を返し、必要なデータを取得できます (これら 3 つを使用することもできます)一緒に楽しく遊んでください^-^)
対応するmybatisの実装も比較的簡単です
SELECT * FROM ConnectName WHERE <!--[CDATA[ AND CHARINDEX(name ,#{传入的参数}) --> 0 ]]>
毛利小五郎など、後で新しい人物を追加したい場合は、「小蘭灰原コナン毛利小五郎」を追加するだけです。受信パラメータのほうがはるかに簡単ではないでしょうか。
以上がSQL クエリ フィールドがステートメントに含まれる問題について話すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP は Web サイト開発で広く使用されているスクリプト言語であり、開発者にとって、フィールドが空かどうかを判断する必要があることがよくあります。 PHP では、フィールドが空かどうかをいくつかの簡単な方法で判断できます。この記事では、PHP でフィールドが空かどうかを判断する方法を紹介し、参考として具体的なコード例を示します。 PHP では、通常、empty() 関数または isset() 関数を使用して、フィールドが空かどうかを判断できます。次に、これら 2 つの機能の使い方をそれぞれ紹介します。 empty() 関数を使用する

Java の NoSuchFieldError - フィールドが見つからない場合の解決策 Java は、エンタープライズ レベルのアプリケーションや大規模なデータ処理で広く使用されている高水準プログラミング言語です。 Javaの開発過程では、NoSuchFieldErrorなどのエラーが発生することがあります。このエラーは、JVM が実行時に必要なフィールドを見つけられないことを意味します。この記事では、NoSuchFieldError とその解決方法について詳しく説明します。 NoSuchFieldEとは何ですか

jQuery は、JavaScript プログラミングを簡素化するためのシンプルかつ強力な関数を提供するよく知られた JavaScript ライブラリです。 Web プロジェクトに jQuery を導入するときは、次のコードを HTML ファイルに追加して、必要なパッケージを導入する必要があります。 My Web ページ

mysql フィールドは、データを保存するために使用される、mysql データベース テーブル内の特定のタイプと長さの列です。 MySQL では、各フィールドに特定のデータ型が必要です。一般的なデータ型には、整数、浮動小数点数、文字列、日付、時刻が含まれます。これらのデータ型によって、MySQL が各フィールドに格納できるデータが決まります。

Web アプリケーションの開発に伴い、PHP 言語は Web 開発で広く使用されています。 PHP8.0 バージョンでは、新しい言語機能である multi-catch ステートメントが導入されました。マルチキャッチステートメントとは何ですか?以前の PHP バージョンでは、開発者は複数の例外タイプを処理するために複数の catch ステートメントを作成する必要がありました。たとえば、次のコード ブロックは 2 つの異なる例外の処理を示しています。

JavaScript を使用して文字列に特定の文字が含まれているかどうかを確認するにはどうすればよいですか? JavaScript では、いくつかの方法を使用して、文字列に特定の文字が含まれているかどうかを判断できます。一般的に使用される 3 つのメソッドを以下に紹介し、対応するコード例を示します。方法 1: IndexOf() メソッドを使用する 文字列の IndexOf() メソッドを使用して、文字列に指定した文字が含まれているかどうかを確認できます。文字列内で最初に出現した特定の文字のインデックスを返します。

テーブルにフィールドを追加する方法: 1. "ALTER TABLE table name ADD new field name data type;" ステートメントを使用して最後にフィールドを追加します。 2. "ALTER TABLE table name ADD new field name data type FIRST;" ステートメントを使用します。 " ステートメントを使用して先頭に追加します。 Field; 3. "ALTER TABLE テーブル名 ADD 新しいフィールド名のデータ型 [制約] AFTER 既存のフィールド名;" ステートメントを使用して、途中にフィールドを追加します。

MySQLにデータを挿入するステートメントを実装するにはどうすればよいですか? MySQL データベースを使用する場合、データの挿入は非常に基本的で一般的な操作です。データを挿入することにより、新しいレコードをデータベース テーブルに追加して、業務運営をサポートできます。この記事では、MySQL で INSERT ステートメントを使用してデータ挿入操作を実装する方法を紹介し、具体的なコード例を示します。 MySQL の INSERT ステートメントは、データベース テーブルに新しいレコードを挿入するために使用されます。基本的な構文形式は次のとおりです。 INSERTINTOt
