编写查询时的 SQL 语法错误

Posted

技术标签:

【中文标题】编写查询时的 SQL 语法错误【英文标题】:SQL Syntax error in writing a query 【发布时间】:2011-09-16 20:19:57 【问题描述】:

好的,这是我的代码。我得到了错误;

“脚本行:4 您的 SQL 语法有错误;请查看与您的 mysql 服务器版本相对应的手册,以在 'SELECT * 附近使用正确的语法 来自用户可用性 WHERE user_id = '0'

END' 在第 4 行 " 这是我的第一个问题,我不知道我哪里出错了。有点小菜鸟,谁能给我指点一下?

DELIMITER $$

DROP PROCEDURE IF EXISTS `getUserAvailabilityStation` $$
CREATE DEFINER=`web`@`localhost` PROCEDURE `getUserAvailabilityStation`(_user_id int(11))
BEGIN

SELECT *
FROM UserAvailabilities
WHERE user_id = '0'

END $$

DELIMITER ;

编辑:解决了这个问题,“WHERE user_id = 0”最后需要一个分号。 Nooby 错误 FTL。感谢各位大佬的帮助

【问题讨论】:

这是什么关系型数据库? (在询问 SQL 问题时最好包括在内)"(不是`)是 SQL-92 标识符引号,但这在实现之间差异很大......无论如何,除非需要,否则我避免使用标识符引号。读起来很恶心;-) 您将数据选择到哪里?您当前的select 查询毫无意义 【参考方案1】:

去掉引号并添加下划线:

SELECT *
FROM UserAvailabilities
WHERE user_id = 0;

【讨论】:

@McAzzaMan 修复我的答案。再试一次。 最后需要一个分号:/你可以编辑你的答案来包括这个吗?所以我可以为其他需要它的人标记它是正确的? 绝对不是:_user_id 是参数。 user_id 是列名。使用前导下划线命名空间参数是一种常见的模式

以上是关于编写查询时的 SQL 语法错误的主要内容,如果未能解决你的问题,请参考以下文章

从子查询中删除多行的SQL语法错误

用于验证 sql 语法错误的 Powershell 脚本

为啥我的最高薪水查询有语法错误?

查询表达式中的语法错误(缺少运算符)“

从左连接SQL中选择时的COUNT(*)语法

执行多个查询时的 Doctrine (DBAL) 错误处理