SQL查询错误#1064

时间:2013-01-16 18:03:55

标签: mysql sql database

这是我写的查询:

SELECT students.name, subjects.sub
FROM students INNER JOIN (subjects INNER JOIN test ON subjects.IDsub = test.IDsub) ON  students.IDstu = test.IDstu
WHERE ((test.date)=#1/21/2013#);

每次执行此查询时,都会收到以下消息:

  

'#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第4行'LIMIT 0,30'附近使用正确的语法

我认为问题在于日期格式,因为如果我执行这个:

SELECT students.name, subjects.sub
FROM students INNER JOIN (subjects INNER JOIN test ON subjects.IDsub = test.IDsub) ON students.IDstu = test.IDstu
WHERE ((test.IDsub)=4);

一切正常!

在数据库中有3个表:“学生”,“测试”,“科目”。

3 个答案:

答案 0 :(得分:0)

日期应该是这样的,即代替#使用'

SELECT students.name, subjects.sub
FROM students INNER JOIN 
(subjects INNER JOIN test ON subjects.IDsub = test.IDsub) 
  ON  students.IDstu = test.IDstu
WHERE ((test.date)='1/21/2013');

答案 1 :(得分:0)

str_to_date

SELECT students.name, subjects.sub
FROM students INNER JOIN (subjects INNER JOIN test ON subjects.IDsub = test.IDsub) ON  students.IDstu = test.IDstu
WHERE ((test.date)=str_to_date('1/21/2013');

我看到的另一个问题是使用井号#不是在mysql中创建字符串查找的有效方法。您想使用单引号'

答案 2 :(得分:0)

PhpMyAdmin为每个命令添加一段SQL,以限制返回的记录数。

LIMIT 0, 30

我会从查询的末尾删除分号,否则,SQL会认为这个额外的代码段是另一个查询。

WHERE ((test.date)=#1/21/2013#)

另外,我从未见过像这样的查询中使用的#符号,你可能会遇到问题。

编辑:根据其他人(忽略了实际的SQL错误...),#无效,请改用引号。

另一个编辑:实际上,#符号似乎有效。

Select query with date condition

相关问题