gpt4 book ai didi

使用结果作为变量的带大小写的mysql查询

转载 作者:行者123 更新时间:2023-11-29 02:28:26 25 4
gpt4 key购买 nike

我需要一个像下面这样的查询,但它不起作用:

SELECT *, 
CASE
WHEN x_sutun1 = '1' OR x_sutun2 >= CURRENT_DATE() THEN 0
WHEN x_sutun1 < 1 AND x_sutun2 < CURRENT_DATE() THEN 1
END as mecit
FROM tablo1
LEFT JOIN tablo2 ON x_sutun0 = y_sutun0
LEFT JOIN tablo3 ON x_sutun0 = z_sutun0
WHERE x_sutun3 + mecit < 4

我如何使用“mecit”作为变量(如果可能,不用存储过程)。

最佳答案

将您的查询包装在这样的外部查询中:

select * from
(
SELECT
*
, CASE
WHEN x_sutun1 = '1' OR x_sutun2 >= CURRENT_DATE() THEN 0
WHEN x_sutun1 < 1 AND x_sutun2 < CURRENT_DATE() THEN 1
END as mecit
FROM tablo1
) m
LEFT JOIN tablo2 ON x_sutun0 = y_sutun0
LEFT JOIN tablo3 ON x_sutun0 = z_sutun0
WHERE x_sutun3 + m.mecit < 4

这样做的原因是您使用的别名在 SELECT 被解析之前是不可见的,这是引擎要查看的查询的最后(或几乎)最后部分。

注意:如果您在使用的表上存在名称冲突,则需要限定列名。

关于使用结果作为变量的带大小写的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084488/

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