MySQLのNOT LIKE演算子とは?使い方をわかりやすく解説
MySQLのNOT LIKE演算子を使用すると、ある文字列の中に特定のパターンを持つ文字列が「含まれていない」ことを確認できます。つまり、指定したパターンに一致しないレコードだけを抽出したい場合に便利な演算子です。
基本構文
NOT LIKE specific_pattern
ここで specific_pattern とは、対象の文字列内に見つけたくない(除外したい)文字列パターンのことです。
使用例
例として、学生の名前が登録された student_info テーブルがあるとします。この中から、名前に「Ga」という文字列パターンを含まない学生の情報をすべて取得したい場合は、以下のようなMySQLクエリで実現できます。
mysql> Select * from Student_info WHERE name NOT LIKE '%Ga%'; +------+---------+----------+-----------+ | id | Name | Address | Subject | +------+---------+----------+-----------+ | 101 | YashPal | Amritsar | History | | 125 | Raman | Shimla | Computers | +------+---------+----------+-----------+ 2 rows in set (0.05 sec)
上記のクエリでは、名前に「Ga」が含まれていない学生(YashPalさんとRamanさん)のみが結果として返されています。「Ga」を含む名前の学生は自動的に除外されます。
ワイルドカード「%」について
上記の例で使われている「%」記号は、NOT LIKE演算子と組み合わせて使用されるワイルドカードです。「%」は0文字以上の任意の文字列に一致するため、「%Ga%」というパターンは「Ga」を途中に含むすべての文字列にマッチします。そのため、NOT LIKEと組み合わせることで、「Gaを含むすべての名前」を除外できるわけです。
なお、LIKE / NOT LIKEでは「%」以外にも、任意の1文字に一致する「_」(アンダースコア)というワイルドカードも利用できます。これらを組み合わせることで、より柔軟な条件でのデータ抽出が可能になります。
-
MySQLの<=>演算子とは?NULL安全な等価比較の使い方を解説
MySQLには、NULL値も安全に比較できる特殊な等価演算子 <=>(NULL安全等価演算子)が用意されています。この記事では、<=> 演算子の動作と、通常の = 演算子との違いを具体例とともに解説します。 ケース1:通常の値の比較(= 演算子と同じ動作) <=> 演算子は、NULL以外の値同士を比較する場合、= 演算子とまったく同じように動作します。つまり、両辺の値が等しければ「1(TRUE)」、等しくなければ「0(FALSE)」を返します。 たとえば、次のような比較では、どちらの演算子でも結果は同じになります。 mysql> SELECT 10
-
MySQLのNOT LIKEの正しい構文と使い方を実例付きで解説
MySQLにおけるNOT LIKEの正しい構文MySQLで特定のパターンに一致しないテーブル名やレコードを抽出したい場合には、NOT LIKE句を使用します。基本的な構文は以下の通りです。SHOW TABLES WHERE `Tables_in_データベース名` NOT LIKE テーブル名%;この構文では、指定した文字列パターンに一致しないテーブルだけが結果として表示されます。ワイルドカード「%」は任意の文字列を表すため、たとえば「insert%」と指定すれば、「insert」で始まるテーブル以外がすべて抽出されます。実際に動作を確認してみようここからは、サンプルデータベース「SAMPLE」