mysql では、「SELECT」ステートメントと LIKE キーワードを使用して、指定した文字列を含むデータをクエリできます。LIKE キーワードは主に、一致するフィールドで指定されたコンテンツを検索するために使用されます。構文「SELECT」フィールド名 FROM テーブル名 WHERE フィールド名 [NOT] LIKE 'string';"。
このチュートリアルの動作環境: 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」を含むすべての生徒名がクエリ結果で返されます。
「」ワイルドカード文字を含むクエリ
例 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)
例 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)
[関連する推奨事項: mysql ビデオ チュートリアル
]###以上がmysqlで指定した文字列を含むデータをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。