根据计算字段的值向mysql select语句添加值

lo8azlld  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(354)

我有以下问题

SELECT `username`, TIMESTAMPDIFF(DAY, STR_TO_DATE(enrolmentDate, '%d-%m-%Y'), now()) AS day 
FROM `users`

这将产生两列,其中“day”列中有一个数值。
有没有办法根据“day”列中的数字添加值为1或0的第三列?如果“day”中的值大于700,我希望新列中的值为1,否则为0。
理想结果:
用户名|天|核心
用户名1 | 100 | 0
用户名2 | 800 | 1
我可以在检索完数据后在php中执行这个检查,但是我认为mysql可能是更有效的方法,如果它能做到的话?
谢谢你给我小费

7vhp5slm

7vhp5slm1#

我认为不能在同一select语句中引用计算列的结果。试试这个:让一天:= TIMESTAMPDIFF(DAY, STR_TO_DATE(enrolmentDate, '%d-%m-%Y'), now()) . 第三列是1/2*符号(day-700)+1/2(如果day<700,则Map为0;如果day>700,则Map为1;如果day==700,则Map为1/2)。

pftdvrlh

pftdvrlh2#

您可以尝试使用子查询,如下所示,

SELECT z.*, IF(z.day > 700, 1, 0) AS core
FROM
  (
    SELECT `username`,
    TIMESTAMPDIFF(DAY, STR_TO_DATE(enrolmentDate, '%d-%m-%Y'), now()) AS day 
    FROM `users`
  ) z

相关问题