添加一列,该列可以被另一列的10整除

问题描述

称为test的表具有列:

person_id(唯一)和special_num

表格:

Table view

结果:

outcome

想创建一个名为div的新列,以确定哪个人获得的special_num可以被10整除,而哪个人不是true还是false则希望是或否。

我是MysqL的新手,从没尝试过,但是给了我一个机会,请告诉我如何获得它:

SELECT * FROM test WHERE special_num % 10 = 0 AS div from test;

我无法弄清楚如何输入值以及这是否是正确的方法

解决方法

如果您要使用,则它会放在select中:

select t.*,( (special_num % 10) = 0) as div
from t;
,

您需要一个CASE表达式:

SELECT *,CASE WHEN special_num % 10 = 0 THEN 'Yes' ELSE 'No' END AS `div`
FROM test 
,

这里是my SQLFiddle来模仿这个问题。

第一步是通过更改表来创建新列。

ALTER TABLE PERSONS 
     ADD is_special VARCHAR(3);

现在运行UPDATE查询,以检查special_num % 10是否为零,如果为零,则将is_special设置为yes

UPDATE PERSONS SET is_special = CASE WHEN special_num % 10 = 0 THEN 'yes' ELSE 'no' END;

话虽如此,存储从其他字段得出或计算的值是一个坏主意。您可能要在视图中而不是表中使用它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...