MySQL,NOT LIKE:特定の文字列を含まないデータを取得する

スポンサーリンク

鍛錬 979

MySQL,NOT LIKE:特定の文字列を含まないデータを取得する

NOT LIKEとワイルドカードの「%」を使用すると、特定の文字列を含まないデータを取得することができます。

使用方法は、以下に示す通りです。

SELECT * FROM テーブル名 WHERE カラム名 NOT LIKE ‘%文字列’;
SELECT * FROM テーブル名 WHERE カラム名 NOT LIKE ‘文字列%’;
SELECT * FROM テーブル名 WHERE カラム名 NOT LIKE ‘文字列%文字列’;
SELECT * FROM テーブル名 WHERE カラム名 NOT LIKE ‘%文字列%’;
スポンサーリンク

実行結果

以下は、テーブル「fruits」のカラム「name」について、特定の文字列を含まないデータを取得しています。

テーブル「fruits」

id name price
1 apple 250
2 orange 300
3 grape 500
mysql> 
mysql> select * from fruits;
+------+--------+-------+
| id   | name   | price |
+------+--------+-------+
|    1 | apple  |   250 |
|    2 | orange |   300 |
|    3 | grape  |   500 |
+------+--------+-------+
3 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits where name not like '%ge';
+------+-------+-------+
| id   | name  | price |
+------+-------+-------+
|    1 | apple |   250 |
|    3 | grape |   500 |
+------+-------+-------+
2 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits where name not like 'a%';
+------+--------+-------+
| id   | name   | price |
+------+--------+-------+
|    2 | orange |   300 |
|    3 | grape  |   500 |
+------+--------+-------+
2 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits where name not like 'g%e';
+------+--------+-------+
| id   | name   | price |
+------+--------+-------+
|    1 | apple  |   250 |
|    2 | orange |   300 |
+------+--------+-------+
2 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select * from fruits where name not like '%p%';
+------+--------+-------+
| id   | name   | price |
+------+--------+-------+
|    2 | orange |   300 |
+------+--------+-------+
1 row in set (0.00 sec)

上記に示した通り、特定の文字列を含まないデータを取得することができました。

タイトルとURLをコピーしました