mySQL错误1064:澄清

时间:2015-03-02 22:36:44

标签: mysql mysql-error-1064

我正在尝试查找上次修改日期大于2015-03-01且名称列为空的所有条目。 这是我写的查询

SELECT * FROM `inventory` where date(date_modified) >= date '2015-03-01' AND where name is not null ORDER BY `inventory`.`date_modified`  DESC

我尝试运行此查询时收到错误1064。

2 个答案:

答案 0 :(得分:0)

围绕date的参数需要括号。另外,您不能在WHERE之后重复AND关键字。

SELECT * FROM `inventory` 
where date(date_modified) >= date('2015-03-01') 
AND name is not null 
ORDER BY `inventory`.`date_modified`  DESC

答案 1 :(得分:0)

根据您的描述,您说

  

name的列为null

在您的查询中,您说:

  

其中name不为空

哪一个是正确的?

您的 1064 ,因为您的查询语法错误,因为您使用WHERE两次。

SELECT ...WHERE .... AND WHERE

这是做到这一点的方法。请更改为null或不为null取决于您想要的内容

SELECT 
    *
FROM
    inventory
WHERE
    date(date_modified) >= date('2015-03-01') AND name is null -- is not null
ORDER BY inventory.date_modified DESC