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

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
−> )
−> ;
Query OK, 0 rows affected (1.87 sec)

挿入コマンド-

を使用して、いくつかのレコードをテーブルに挿入します。
mysql> insert into demo30(value,original_value) values(50,10);
Query OK, 1 row affected (0.10 sec)

mysql> insert into demo30(value,original_value) values(1000,0);
Query OK, 1 row affected (0.13 sec)

mysql> insert into demo30(value,original_value) values(0,40);
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo30(value,original_value) values(30,0);
Query OK, 1 row affected (0.09 sec)

selectステートメントを使用してテーブルのレコードを表示する-

mysql> select *from demo30;

これにより、次の出力が生成されます-

+----+-------+----------------+
| id | value | original_value |
+----+-------+----------------+
| 1  | 50    | 10             |
| 2  | 1000  | 0              |
| 3  | 0     | 40             |
| 4  | 30    | 0              |
+----+-------+----------------+
4 rows in set (0.00 sec)

以下は、MySQLで選択された値が「0」の場合に別の列から選択するためのクエリです-

mysql> select id, if(original_value= 0,value,original_value) as Result
−> from demo30;

これにより、次の出力が生成されます-

+----+--------+
| id | Result |
+----+--------+
|  1 | 10     |
|  2 | 1000   |
|  3 | 40     |
|  4 | 30     |
+----+--------+
4 rows in set (0.00 sec)

  1. MySQLの別のフィールドからフィールドの値を導出する方法は?

    このために、ユーザー定義変数の概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1868      (      Value int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1868 values(10); Query OK, 1 row affected (0

  2. MySQLのVARCHAR列から最大値を見つける

    最大値を見つけるには、値がVARCHARタイプであるため、CAST()とともにMAX()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2030    -> (    -> Value varchar(20)    -> ); Query OK, 0 rows affected (0.44 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2030 values(&