MySQL查询没有使用多个AND运算符进行编译

时间:2014-04-18 15:45:31

标签: mysql

我在MySQL中构建了这个查询,但是它返回了错误。我尝试过切换<>运算符!=没有运气,以及更改AND运算符的顺序。我确信这很简单,但我一直用它来绞尽脑汁!如果我删除部门不等于'条件它编译,但重要的是它在那里。

SELECT id,event,start_date,type, department
FROM eventmanager_events 
WHERE status='Scheduled' 
AND start_date > CURDATE() 
AND type='Conference' 
AND department<>'Human Resources' 
ORDER BY start_date

我是社区的新手,所以请不要没有充分的理由向我投票。我希望这是一个正确构建的问题。谢谢大家!

编辑:我已删除&#39;类型&#39;条件,但它仍然无法正确编译。

EDIT2:我收到的错误,我不确定原因是:

&#34;您的SQL语法出错了;检查与您的MySQL服务器版本相对应的手册,以便在“预定”附近使用正确的语法。 AND start_date&gt; CURDATE() AND type =&#39;会议&#39;在第3行&#34;

EDIT3:我想我已经解决了这个问题。该部门&#39; column为NULL,没有默认值。我已经改变了部门的数据库结构&#39;字段不允许带有&#39; null&#39;默认值。一旦我改变了这个,查询就会正常运行。我不确定为什么会这样,也许是字符串比较呢?无论哪种方式,都是固定的!再次感谢大家。

2 个答案:

答案 0 :(得分:0)

错误是什么?

不要使用&#39;键入&#39; ,使用smth elese

Here是SQL

中保留键的列表

嗯,你更新到Mysql,然后&#39;键入&#39;是合法的

答案 1 :(得分:0)

您可能希望格式化查询以了解哪个AND是独立的

SELECT id,event,start_date,type, department
    FROM eventmanager_events 
    WHERE status='Scheduled' 
        AND start_date > CURDATE() 
        AND type='Conference' 
        AND department<>'Human Resources' 
    ORDER BY start_date