2011-02-10 114 views
1

在我的SQL查询的一部分,在查询结束时,我有这个MySQL查询失败

GROUP BY 
`Record`.`RecordID` 
ORDER BY 
`Record`.`RecordID` 

它正常工作,直到我的recordId空,然后MySQL查询失败。有周围IFNULL的方式我不使用GROUP BY和ORDER BY

感谢

+0

失败怎么办?你有错误吗? – 2011-02-10 22:44:48

回答

0

你可以试试:

GROUP BY IFNULL(`Record`.`RecordID`,0) 

可以跳过ORDER BY,由于MySQL默认将整理基础上, GROUP BY

+0

@cyberkiwi今天我看到的最糟糕的评论...你说没记录吗? **“在MySQL中,GROUP BY用于排序” ** http://dev.mysql.com/doc/refman/5.0/en/group-by-optimization.html – 2011-02-10 22:57:16

0

当你说失败了,你是什么意思?

如果我有表:

Value 
    a 
    b 
{null} 
    c 
    c 

,我运行查询:

select value from table 
group by value 

你的结果是:

{null} 
a 
b 
c 

要摆脱空值:

select value from table 
group by value 
having value is not null 
0

我没有看到GROUP BY和ORDER BY子句本身和如何引起的任何失败。请不要只显示你认为已经损坏的部分,如果你知道的更好,你不需要在这里问一下吗?

添加IS NOT NULL过滤器删除它们完全

WHERE `Record`.`RecordID` is not null 
GROUP BY 
`Record`.`RecordID` 
ORDER BY 
`Record`.`RecordID`