添加一列,该列可被另一列整除 10
Add a column which is the divisible by 10 of another column
一个名为 test 的 table 有列:
person_id(唯一)&special_num
Table:
结果:
想创建一个名为 div 的新列来确定哪个人得到了 div 到 10 岁时可以得到的 special_num 以及哪个人没有得到而不是 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模拟这个问题。
第一步是通过更改 table 创建一个新列。
ALTER TABLE PERSONS
ADD is_special VARCHAR(3);
现在 运行 一个更新查询,检查 special_num % 10
是否为零,如果是,则将 is_special
设置为 yes
。
UPDATE PERSONS SET is_special = CASE WHEN special_num % 10 = 0 THEN 'yes' ELSE 'no' END;
话虽如此,存储从其他字段派生或计算的值并不是一个好主意。您可能想在视图中使用它,而不是在 table.
中
一个名为 test 的 table 有列:
person_id(唯一)&special_num
Table:
结果:
想创建一个名为 div 的新列来确定哪个人得到了 div 到 10 岁时可以得到的 special_num 以及哪个人没有得到而不是 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模拟这个问题。
第一步是通过更改 table 创建一个新列。
ALTER TABLE PERSONS
ADD is_special VARCHAR(3);
现在 运行 一个更新查询,检查 special_num % 10
是否为零,如果是,则将 is_special
设置为 yes
。
UPDATE PERSONS SET is_special = CASE WHEN special_num % 10 = 0 THEN 'yes' ELSE 'no' END;
话虽如此,存储从其他字段派生或计算的值并不是一个好主意。您可能想在视图中使用它,而不是在 table.
中