ホームページ  >  記事  >  データベース  >  mysqlで指定した文字列を含むデータをクエリする方法

mysqlで指定した文字列を含むデータをクエリする方法

青灯夜游
青灯夜游オリジナル
2022-01-05 16:23:4125070ブラウズ

mysql では、「SELECT」ステートメントと LIKE キーワードを使用して、指定した文字列を含むデータをクエリできます。LIKE キーワードは主に、一致するフィールドで指定されたコンテンツを検索するために使用されます。構文「SELECT」フィールド名 FROM テーブル名 WHERE フィールド名 [NOT] LIKE 'string';"。

mysqlで指定した文字列を含むデータをクエリする方法

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

mysql では、「SELECT」ステートメントと LIKE キーワードを使用して、指定した文字列を含むデータをクエリできます。

LIKE キーワードは主に、一致フィールドで指定されたコンテンツを検索するために使用されます。構文形式は次のとおりです:

[NOT] LIKE  '字符串'

そのうち:

  • NOT: オプションのパラメータ。フィールドの内容が指定された文字列と一致しない場合に条件が満たされます。 。

  • 文字列: 照合する文字列を指定します。 「文字列」には完全な文字列を指定することも、ワイルドカード文字を含めることもできます。

LIKE キーワードは、パーセント記号「%」とアンダースコア「_」のワイルドカード文字をサポートします。

ワイルドカードは特別なステートメントであり、主にファジー クエリに使用されます。実際の文字が不明な場合、またはフルネームを入力するのが面倒な場合は、ワイルドカードを使用して 1 つ以上の実際の文字を置き換えることができます。

「SELECT」ステートメントでの LIKE キーワードの使用例

with " %" ワイルドカード クエリ

"%" は、MySQL で最も一般的に使用されるワイルドカード文字です。任意の長さの文字列を表すことができます。文字列は 0 です。たとえば、a%b は、文字 a で始まり文字 b で終わる任意の長さの文字列を表します。この文字列は、ab、acb、accb、acrb などの文字列を表すことができます。

例 1

tb_students_info テーブルで、文字「T」で始まるすべての学生名を検索します。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE 'T%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.12 sec)

ご覧のとおり、文字「T」で始まる学生名のみがクエリ結果で返されます。

注: 一致する文字列は一重引用符または二重引用符で囲む必要があります。

NOT LIKE 文字列が一致しない場合に条件が満たされることを示します。

例 2

tb_students_info テーブルで、文字「T」で始まらないすべての学生名を検索します。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT NAME FROM tb_students_info
    -> WHERE NAME NOT LIKE 'T%';
+-------+
| NAME  |
+-------+
| Dany  |
| Green |
| Henry |
| Jane  |
| Jim   |
| John  |
| Lily  |
| Susan |
+-------+
8 rows in set (0.00 sec)

ご覧のとおり、クエリ結果は文字「T」で始まらない学生の名前を返します。

例 3

tb_students_info テーブルで、文字「e」を含むすべての学生名を検索します。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '%e%';
+-------+
| name  |
+-------+
| Green |
| Henry |
| Jane  |
+-------+
3 rows in set (0.00 sec)

ご覧のとおり、文字「e」を含むすべての生徒名がクエリ結果で返されます。

」ワイルドカード文字を含むクエリ

「_」は A のみを表すことができます単一文字の場合、文字の長さを 0 にすることはできません。たとえば、a_b は acb、adb、aub などの文字列を表すことができます。

例 4

tb_students_info テーブルで、文字「y」で終わり、「y」の前に 4 文字だけあるすべての学生名を検索します。SQL ステートメント実行結果は以下の通りです。

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '____y';
+-------+
| name  |
+-------+
| Henry |
+-------+
1 row in set (0.00 sec)
LIKE は大文字と小文字を区別します

デフォルトでは、LIKE キーワードは文字を照合するときに大文字と小文字を区別しません。大文字と小文字を区別する必要がある場合は、BINARY キーワードを追加できます。

例 5

tb_students_info テーブルで、文字「t」で始まるすべての学生名を検索します。SQL ステートメントと操作では、大文字と小文字が区別されます。以下の通り。

mysql> SELECT name FROM tb_students_info WHERE name LIKE 't%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.00 sec)
mysql> SELECT name FROM tb_students_info WHERE name LIKE BINARY 't%';
Empty set (0.01 sec)

結果からわかるように、大文字と小文字を区別すると、「Tom」や「Thomas」などのレコードは照合されなくなります。

[関連する推奨事項: mysql ビデオ チュートリアル

]###

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

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