ホームページ  >  記事  >  データベース  >  mysql でのフィルタリングにワイルドカードを使用するチュートリアル

mysql でのフィルタリングにワイルドカードを使用するチュートリアル

巴扎黑
巴扎黑オリジナル
2017-05-02 18:19:401679ブラウズ

ワイルドカードとは何ですか?

ワイルドカードは、値の一部を一致させるために使用される特殊文字です。

検索モード: リテラル値、ワイルドカード、またはその両方の組み合わせで構成される検索条件。


1.like 演算子:

前に紹介したすべての演算子は、定数値をフィルターします。複数の値の一致、既知の値より大きいまたは小さい値のテスト、または値の範囲のチェックのいずれであっても、共通点は、フィルター処理に使用される値が既知であることです。ただし、このフィルタリング方法は必ずしも使いやすいわけではありません。たとえば、製品名に anvil というテキストが含まれる製品をすべて検索するにはどうすればよいでしょうか。単純な比較演算子を使用することは不可能です。ワイルドカードを使用する必要があります。ワイルドカードを使用して、特定のデータを比較する検索パターンを作成します。この例では、名前に anvil が含まれるすべての製品を検索する場合、ワイルドカード検索パターンを作成して、製品名の任意の場所に anvil が含まれる製品を検索できます。

検索句でワイルドカードを使用するには、リンク演算子を使用する必要があります。 like は MySQL に指示し、その後に比較に直接等価一致ではなくワイルドカード一致を使用する検索パターンを指定します。


2. パーセント記号 (%) ワイルドカード

最も一般的に使用されるワイルドカード文字はパーセント記号 (%) です。検索文字列では、% は任意の文字の任意の数の出現を表します。たとえば、単語 a で始まるすべての製品を検索するには、次の select ステートメントを使用できます:

select prod_id, prod_name from products where prod_name like 'a%';

​​

この例では、検索パターン 'a%' を使用します。この文を実行するときに、a で始まる単語を検索します。 % は、文字数に関係なく、 a の後の任意の文字を受け入れるように MySQL に指示します。

注: MySQL の構成によっては、検索で大文字と小文字が区別される場合があります。大文字と小文字が区別される場合、「a%」は Apache という単語と一致しません。

ワイルドカードは検索パターンのどこでも使用でき、複数のワイルドカードを使用できます。次の例では、パターンの両端にある 2 つのワイルドカードを使用しています:

select prod_id, prod_name from products where prod_name like '%a%';

​​

コード分析: 検索パターン '%a%' は、次のいずれかに一致することを意味します。前後にどの文字が現れるかに関係なく、テキスト アンビル値を含む位置。

ワイルドカードは検索パターンの途中に使用することもできます。たとえば、次の例:

select prod_namefrom products where prod_name like '%a%';

1 つ以上の文字に加えて、% は 0 文字にも一致することに注意することが重要です。 % は、検索パターン内の特定の位置にある 0、1、または複数の文字を表します。

: 1. スペースはワイルドカードの一致を妨げる可能性があります。たとえば、'%a%' の a の後に 1 つ以上のスペースがある場合、a の後に余分な文字があるため、句 where prod_name like '%a%' はそれらに一致しません。この問題を解決する簡単な方法は、検索パターンの最後に % を追加することです。もう 1 つのより良い方法は、末尾のスペースを削除する関数を使用することです。

2. % ワイルドカードは何でも一致するように見えますが、NULL という例外が 1 つあります。 「%」のような prod_name が製品名として値 NULL を持つ行と一致しない場合でも。


3. アンダースコア「_」ワイルドカード

もう 1 つの便利なワイルドカードはアンダースコア (_) です。アンダースコアは % と同じ目的を持ちますが、複数の文字ではなく 1 つの文字に一致します。

例:

select prod_id,prod_name from products where products where prod_name like '_ ton anvil';

出力:

mysql でのフィルタリングにワイルドカードを使用するチュートリアル

この where 句の検索パターンは、検索パターンとその後に続くテキスト 2 つのワイルドカードを与えます。結果には、検索パターンに一致する行のみが表示されます。最初の行の下線は 1 に一致し、2 行目の下線は 2 に一致します。

% を使用して返された結果を再度一致させ、それらを比較してみることができます。

以上がmysql でのフィルタリングにワイルドカードを使用するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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