MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで1つの条件を使って空白文字列と0の両方をチェックする方法

はい、IN句を使えば、1つの条件で空白文字列(空文字)と「0」の両方を同時にチェックすることができます。ここでは、その具体的な手順をサンプルコードとともに解説します。

サンプルテーブルの作成

まず、テスト用のテーブルを作成します。

mysql> create table DemoTable
(
    ClientId varchar(40)
);
Query OK, 0 rows affected (1.01 sec)

テストデータの挿入

次に、INSERTコマンドを使ってサンプルデータを登録します。ここには通常の文字列だけでなく、「0」という文字列や空文字も含めています。

mysql> insert into DemoTable values('CLI-01');
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable values('0');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('CLI-02');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable values('CLI-00');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('CLI-98');
Query OK, 1 row affected (0.09 sec)

登録データの確認

SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。

mysql> select *from DemoTable;

実行結果は以下のとおりです。

+----------+
| ClientId |
+----------+
| CLI-01   |
| 0        |
| CLI-02   |
| CLI-00   |
|          |
| CLI-98   |
+----------+
6 rows in set (0.00 sec)

1つの条件で空白文字列と0を抽出するクエリ

それでは本題です。以下のようにIN句を使うことで、1つのWHERE条件だけで「0」と空文字の両方にマッチするレコードを取得できます。

mysql> select *from DemoTable where ClientId IN('0','');

実行結果は以下のとおりです。「0」と空文字の2件だけが抽出されていることがわかります。

+----------+
| ClientId |
+----------+
| 0        |
|          |
+----------+
2 rows in set (0.00 sec)

補足:OR条件との違い

同じ結果は WHERE ClientId = '0' OR ClientId = '' と書いても得られますが、IN句を使った方が条件が1つにまとまり、コードがすっきりして読みやすくなります。条件が増えた場合も、IN句のリストに値を追加するだけで済むため、保守性の面でも有利です。

  1. MySQLでハイフン区切りの文字列値を1つの列から複数の列に分離して選択する方法

    ハイフンで区切られた文字列値を1つの列から複数の列に分離して取得したい場合、MySQLの SUBSTRING_INDEX() 関数を使用すると簡単に実現できます。ここでは、サンプルテーブルを使って具体的な手順を解説します。 サンプルテーブルの作成 まず、従業員情報を格納するテーブルを作成します。 mysql> create table DemoTable1962 ( EmployeeInformation text ); Query OK, 0 rows affected (0.00 sec) データの挿入 次に、INSERT文を使って「ID-名前-年齢」の形

  2. MySQLでAND・OR演算子を組み合わせた単一クエリを使って特定のレコードを取得する方法

    MySQLでは、AND演算子とOR演算子をWHERE句で組み合わせることで、複数の条件を指定しながら特定のレコードを1つのクエリで取得できます。本記事では、実際にテーブルを作成し、データを挿入して、AND・ORを組み合わせたクエリの動作を確認していきます。 1. テーブルの作成 まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable2015 -> ( -> StudentId int, -> StudentName varchar(20), -> Stude