gpt4 book ai didi

mysql - 在 WHERE 语句中使用变量列名

转载 作者:行者123 更新时间:2023-11-29 06:27:17 25 4
gpt4 key购买 nike

这不起作用。我的列名称包括周一、周二、周三、周四、周五、周六、周日,设置为 0 或 1。我试图根据当前的 3 位数星期几来查看列名称是 0 还是 1。

SET @var = DATE_FORMAT(NOW(), '%a') 
SELECT *, @var
FROM team LEFT JOIN fav ON team.Tag = fav.Tag WHERE ID = '123456' AND @var = '1'
ORDER BY team.Name

最佳答案

变量的 @var 值是字符串文字,不能用作列。
您可以使用 CASE 表达式执行您想要的操作:

SET @var = DATE_FORMAT(NOW(), '%a'); 
SELECT *, @var
FROM team LEFT JOIN fav
ON team.Tag = fav.Tag
WHERE ID = '123456'
AND '1' = CASE @var
WHEN 'Mon' THEN Mon
WHEN 'Tue' THEN Tue
WHEN 'Wed' THEN Wed
WHEN 'Thu' THEN Thu
WHEN 'Fri' THEN Fri
WHEN 'Sat' THEN Sat
WHEN 'Sun' THEN Sun
END
ORDER BY team.Name;

或者没有变量:

SELECT * 
FROM team LEFT JOIN fav
ON team.Tag = fav.Tag
WHERE ID = '123456'
AND '1' = CASE DATE_FORMAT(NOW(), '%a')
WHEN 'Mon' THEN Mon
WHEN 'Tue' THEN Tue
WHEN 'Wed' THEN Wed
WHEN 'Thu' THEN Thu
WHEN 'Fri' THEN Fri
WHEN 'Sat' THEN Sat
WHEN 'Sun' THEN Sun
END
ORDER BY team.Name;

CASE 表达式内,使用表 (teamfav) 限定 Mon、Tue、Wed、Thu、Fri、Sat、Sun 列>) 他们属于。

关于mysql - 在 WHERE 语句中使用变量列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58826316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com