在 MySQL 中添加列值时设置条件?

mysqlmysqli database更新于 2023/11/5 11:50:00

要在添加列值时设置条件,请使用 MySQL IF()。让我们首先创建一个表 −

mysql> create table DemoTable
   -> (
   -> Value1 int,
   -> Value2 int,
   -> Value3 int
   -> );
Query OK, 0 rows affected (0.64 sec)

使用 insert 命令在表中插入一些记录 −

mysql> insert into DemoTable values(10,20,-30);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(50,60,90);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(100,200,400);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(30,40,-50);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(70,80,-1);
Query OK, 1 row affected (0.24 sec)

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable;

这将产生以下输出 −

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
|     10 |     20 |    -30 |
|     50 |     60 |     90 |
|    100 |    200 |    400 |
|     30 |     40 |    -50 |
|     70 |     80 |     -1 |
+--------+--------+--------+
5 rows in set (0.00 sec)

这是在添加列值时设置条件的查询 −

mysql> select Value1+Value2+if(Value3 > 0,Value3,0) from DemoTable;

这将产生以下输出 −

+---------------------------------------+
| Value1+Value2+if(Value3 > 0,Value3,0) |
+---------------------------------------+
|                                    30 |
|                                   200 |
|                                   700 |
|                                    70 |
|                                   150 |
+---------------------------------------+
5 rows in set (0.00 sec)

相关文章