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

MySQLのSTRCMP()関数で数値を引数として使用する方法

MySQLのSTRCMP()関数は、文字列だけでなく数値も引数として比較に利用できます。その場合、数値は引用符(クォート)を付けずにそのまま渡すのがポイントです。

基本的な使い方

STRCMP()関数は、第1引数と第2引数を比較し、以下のような結果を返します。

  • 両者が等しい場合:0
  • 第1引数が小さい場合:-1
  • 第1引数が大きい場合:1
  • どちらか一方、または両方がNULLの場合:NULL

実行例

次の例では、等しい数値同士、大小関係が異なる数値同士、さらにNULLを含む組み合わせについて、それぞれの比較結果を確認しています。

mysql> Select STRCMP(10,10)As 'Equal Numbers', STRCMP(11,10)AS '2nd Smaller', STRCMP(10,11)AS '1st Smaller', STRCMP(10,NULL)As '2nd NULL',STRCMP(NULL,10)AS '1st NULL',STRCMP(NULL,NULL)AS 'Both NULL';
+---------------+-------------+-------------+----------+----------+-----------+
| Equal Numbers | 2nd Smaller | 1st Smaller | 2nd NULL | 1st NULL | Both NULL |
+---------------+-------------+-------------+----------+----------+-----------+
| 0             | 1           | -1          | NULL     | NULL     | NULL      |
+---------------+-------------+-------------+----------+----------+-----------+
1 row in set (0.00 sec)

結果の解説

  • STRCMP(10,10) → 両者とも同じ値なので 0 を返します。
  • STRCMP(11,10) → 第1引数(11)の方が大きいので 1 を返します。
  • STRCMP(10,11) → 第1引数(10)の方が小さいので -1 を返します。
  • STRCMP(10,NULL)STRCMP(NULL,10)STRCMP(NULL,NULL) → 引数にNULLが含まれる場合は、いずれも NULL が返されます。

このように、STRCMP()関数は引用符なしの数値をそのまま扱えるため、数値データの大小比較にも手軽に活用できます。ただし、NULLが含まれるケースでは必ずNULLが返る点には注意が必要です。

  1. MySQLで空白値とNULL値をスキップする方法を実例で解説

    MySQLで空白値とNULL値をスキップするには? MySQLでデータを取得する際、NULLだけでなく空文字()のレコードもまとめて除外したいケースはよくあります。その場合は、IS NOT NULL と <> をAND条件で組み合わせたWHERE句を使用します。 基本構文 select *from yourTableName where yourColumnName IS NOT NULL AND yourColumnName <> ; MySQLではNULLと空文字は別のものとして扱われるため、両方を除外するにはこのように2つの条件が必要です。「IS NOT NUL

  2. 【MySQL】行内のNULLの数をカウントする方法|ISNULL()関数の使い方を解説

    MySQLで行内のNULLの数をカウントするには?MySQLでは、ISNULL()関数を使用することで、行内に含まれるNULL値の数を簡単にカウントできます。ISNULL()関数は、引数がNULLの場合に「1」を、NULLでない場合に「0」を返すため、複数の列に対するISNULL()の戻り値を合計すれば、その行のNULLの総数を求めることができます。ここからは、実際にサンプルテーブルを作成しながら手順を見ていきましょう。1. サンプルテーブルを作成するまず、CREATE TABLE文でテーブルを作成します。mysql> create table DemoTable