ホームページ  >  記事  >  データベース  >  mysqlに含まれる文字列をクエリする方法

mysqlに含まれる文字列をクエリする方法

WBOY
WBOYオリジナル
2022-02-24 11:30:4225870ブラウズ

方法: 1. 「'% string%' のようなフィールドがあるテーブル名」を使用してクエリ; 2. 「find_in_set (文字列, フィールド) のテーブル名」を使用してクエリ; 3. 「テーブル名 where '% string%'" のようなフィールドをクエリに使用し、locate(string,field)" クエリを実行します。

mysqlに含まれる文字列をクエリする方法

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql に含まれる文字列をクエリする方法

MySQL で特定の文字列に特定の文字列が含まれているかどうかを判断する 3 つの方法をまとめます。

まず、趣味で yanggb を使用してユーザー テーブルにレコードをクエリするなど、簡単なシナリオを考えてみましょう。

方法 1: ワイルドカード文字 % を使用します。

ワイルドカードもあいまいマッチングであり、先頭あいまいクエリ、末尾あいまいクエリ、および先頭全体一致クエリに分けることができ、特定の文字列に別のあいまいクエリが含まれているかどうかをクエリするシナリオに適しています。 。

select * from user where hobby like '%yanggb%';

使用シナリオは、趣味 (趣味はカンマで区切られた複数の値) の yanggb に存在するレコードの検索に限定されますが、その逆はできません。

方法 2: MySQL が提供する文字列関数 find_in_set() を使用します。

MySQL は文字列関数 find_in_set(str1,str2) 関数を提供します。これは、str2 内の str1 の位置インデックスを返すために使用されます。見つかった場合は true (1) を返し、それ以外の場合は返します。 false ( 0)。str2 は半角カンマ [,] で区切る必要があります。

select * from user where find_in_set('yanggb', hobby);

一致する文字列が最初のパラメータとして使用される場合、該当するシナリオは、趣味で yanggb のレコードを検索することです (趣味はカンマで区切られた複数の値です)。

select * from user where find_in_set(hobby, 'yanggb1,yanggb2,yanggb3');

一致した文字列が 2 番目のパラメーターとして使用される場合、該当するシナリオは、趣味 (趣味は単一の値) に yanggb1、yanggb2、yanggb3 のいずれかを含むレコードを検索することです。

方法 3: MySQL が提供する文字列関数locate() 関数を使用します。

MySQL には、文字列関数locate(substr, str) 関数も用意されており、str 内の substr の位置インデックスを返すために使用されます。見つかった場合は 0 より大きい数値を返し、それ以外の場合は 0 を返します。 0 を返します。

select * from user where locate('yanggb', hobby) > 0;

該当するシナリオは find_in_set() 関数に似ています。2 つの関数の唯一の違いは戻り値です。

推奨学習: mysql ビデオ チュートリアル

以上がmysqlに含まれる文字列をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。