Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL如果字段等于X,则显示为Y_Mysql - Fatal编程技术网

MySQL如果字段等于X,则显示为Y

MySQL如果字段等于X,则显示为Y,mysql,Mysql,我是MySQL的新手。我试着用谷歌搜索这个问题,但只发现表中的SELECT列是t语句,我相信这不是我需要的 我在一个名为“products”的表中有一个名为“active”的列。它的可选值是-1、0、1 我正在使用从产品中选择活动。它按原样显示表格,但我想让它显示0,其中值等于-1,而不更改原始值 这可以在MySQL中完成吗?您可以使用CASE: SELECT *,CASE WHEN active = -1 THEN 0 ELSE active EN

我是MySQL的新手。我试着用谷歌搜索这个问题,但只发现表中的
SELECT列是t
语句,我相信这不是我需要的

我在一个名为“products”的表中有一个名为“active”的列。它的可选值是
-1、0、1

我正在使用
从产品中选择活动
。它按原样显示表格,但我想让它显示
0
,其中值等于
-1
,而不更改原始值


这可以在MySQL中完成吗?

您可以使用
CASE

SELECT *,CASE WHEN active = -1 THEN 0
               ELSE active
        END active_2
FROM products;
如果

SELECT *, IF(active=-1, 0, active) AS active_2
FROM products;

谢谢你的重播,他们中有人认为练习更好吗?为什么?@omer CASE表达式将跨多个RDBMS(Oracle、SQL Server、PostgreSQL)工作<代码>如果是特定于MySQL的。我建议使用
CASE
active_2是什么意思?@omer我使用了
SELECT*
,这就是我为表达式添加别名的原因。您可以随意命名,或者选择col_name1、col_name2、CASE。。。从..@omer作为新用户结束活动,您应该注意: