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

MySQLの2つの列からNULL列ではないを選択しますか?


2つの列からNOTNULL列を選択する方法はたくさんあります。構文は次のとおりです。

ケース1 :IFNULL()関数を使用します。

構文は次のとおりです。

SELECT IFNULL(yourColumnName1,yourColumnName2) as anyVariableName from yourTableName;

ケース2 :coalesce()関数を使用します。

構文は次のとおりです。

SELECT COALESCE(yourColumnName1,yourColumnName2) as anyVariableName from yourTableName;

ケース3: CASEステートメントを使用します。

構文は次のとおりです。

SELECT CASE
WHEN yourColumnName1 IS NOT NULL THEN yourColumnName1 ELSE yourColumnName2
END AS anyVariableName
FROM yourTableName;

ケース4 :IF()のみを使用してください。

構文は次のとおりです。

SELECT IF (yourColumnName1 ISNULL,yourColumnName2,yourColumnName1) AS NotNULLValue FROM SelectNotNullColumnsDemo;

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。

mysql> create table SelectNotNullColumnsDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> Age int
   -> ,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.86 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。

mysql> insert into SelectNotNullColumnsDemo(Name,Age) values('John',NULL);
Query OK, 1 row affected (0.16 sec)
mysql> insert into SelectNotNullColumnsDemo(Name,Age) values(NULL,23);
Query OK, 1 row affected (0.16 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from SelectNotNullColumnsDemo;

出力は次のとおりです。

+----+------+------+
| Id | Name | Age  |
+----+------+------+
|  1 | John | NULL |
|  2 | NULL |   23 |
+----+------+------+
2 rows in set (0.00 sec)

これは、2つの列からnull以外の値を選択するためのクエリです。

ケース1 :IFNULL()

クエリは次のとおりです。

mysql> select ifnull(Name,Age) as NotNULLValue from SelectNotNullColumnsDemo;

出力は次のとおりです。

+--------------+
| NotNULLValue |
+--------------+
| John         |
| 23           |
+--------------+
2 rows in set (0.00 sec)

ケース2 :合体

クエリは次のとおりです。

mysql> select coalesce(Name,Age) as NotNULLValue from SelectNotNullColumnsDemo;

出力は次のとおりです。

+--------------+
| NotNULLValue |
+--------------+
| John         |
| 23           |
+--------------+
2 rows in set (0.00 sec)

ケース3:ケース

クエリは次のとおりです。

mysql> select case
   -> when Name is not null then Name else Age
   -> end as NotNULLValue
   -> from SelectNotNullColumnsDemo;

出力は次のとおりです。

+--------------+
| NotNULLValue |
+--------------+
| John         |
| 23           |
+--------------+
2 rows in set (0.00 sec)

ケース4 :IF()

クエリは次のとおりです。

mysql> select if(Name is NULL,Age,Name) as NotNULLValue from SelectNotNullColumnsDemo;

出力は次のとおりです。

+--------------+
| NotNULLValue |
+--------------+
| John         |
| 23           |
+--------------+
2 rows in set (0.00 sec)

  1. 2つの列からすべての列値をカウントし、合計カウントからNULL値を除外するMySQLクエリ?

    まずテーブルを作成しましょう- mysql> create table DemoTable1975    (    StudentName varchar(20),    StudentMarks int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1975 values('John',45); Query OK, 1 r

  2. MySQLで選択した値が「0」の場合は別の列から選択しますか?

    これには、MySQLでIF()を使用します。構文は次のとおりです- select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo30 −> ( −> id int not null auto_increment primary key, −> value int, −> original_value int