我陷入了非常奇怪的境地。我从php编辑器生成代码,正如您所知,我在一行中得到的代码都是非格式化的。
这是我的密码:
SELECT ua.id AS ua_id,
ua.activity_time AS ua_activity_time,
ua.user_id AS ua_user_id,
ua.charter_id AS ua_charter_id,
'table' AS ua_table_name,
Concat(Round(Timestampdiff(minute, ua.activity_time, Now()) / 30, 0), '-'
, ua.charter_id) AS delimiter
FROM user_activity_charter_update AS ua
WHERE ua.activity_time BETWEEN '2018-07-10 00:00:00' AND '2018-08-10 00:00:00'
它报告语法错误:
sql语法有错误;查看与您的mysql服务器版本对应的手册,以获得正确的语法,以便在第1行的“user\u activity\u charter\u update as ua where ua.activity\u time between'2018-07-10 00”附近使用
但更奇怪的是,当我在前面从中点击空格并将其放入新行时,查询工作正常。
2条答案
按热度按时间i5desfxk1#
问题出在select语句中的关键字delimter中,因为mysql将查询中的分隔符解释为命令。您可以在这里看到有关分隔符的更多信息。所以,如果您将关键字分隔符更改为其他内容,则这不是关键字,它可以正常工作。:)
工作示例:
7cwmlq892#
在第一张图片中,您只选择了一个查询的一部分,所以当您尝试执行查询时,实际上您只尝试执行所选的部分。这就是错误的原因。