gpt4 book ai didi

mysql - SQL:语法错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:58 24 4
gpt4 key购买 nike

我在 MySql 中执行这个查询:

SELECT amount
FROM Prices
WHERE (item_id = 1246 AND
('2016-12-26' BETWEEN (effective_date AND COALESCE(end_date, NOW()))))

但由于某种原因,我收到一个语法错误,我看不到它在哪里。错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AND(item_id = 1419 AND ('2017-01-14' BETWEEN (effective_date AND COALESCE(end' at line 1

价格是这样的:价格

id
item_id
effective_date
end_date

最佳答案

我认为 BETWEEN 和该表达式的第一项之间不应有括号。这样的事情应该有效:

SELECT amount
FROM Prices
WHERE item_id = 1246 AND
'2016-12-26' BETWEEN effective_date AND COALESCE(end_date, NOW())

这个问题是一个打字错误,但也许这个答案对任何想知道使用 BETWEEN 的正确方法的人都有用。

MySQL documentation for BETWEEN没有明确提及有关括号的任何内容,但根据给出的示例似乎暗示了这一点。

根据本地测试,BETWEEN 表达式中的两个术语中的每一个都可以用括号括起来,例如

WHERE '2016-12-26' BETWEEN (effective_date) AND (COALESCE(end_date, NOW()))

但是,在整个子句两边加上括号会产生错误,而这正是您所做的:

WHERE '2016-12-26' BETWEEN (effective_date AND COALESCE(end_date, NOW()))

关于mysql - SQL:语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825023/

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