2011-02-10 13 views
1

を失敗し、このmysqlのクエリは、私が持っているクエリの終わりに私のSQLクエリの一部では

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

私はレコードIDのヌルを持つまで、それが正常に動作して、mysqlのクエリが失敗します。あなたが試すことができ

+0

がどのように失敗し、それらを除去するためのNULLフィルターではありませんか?間違いはありますか? –

答えて

0

に感謝し、私は

BY GROUP BYおよび受注を使用していけないことIFNULLを回避する方法はあります:

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

デフォルトでMySQLはに基づいて並べ替えられますので、あなたは、ORDER BYをスキップすることができますGROUP BY

+0

@cyberkiwi今日見たことがある最悪のコメント...あなたは書類なしと言ったのですか? ** "MySQLでは、GROUP BYはソートに使用されます" ** http://dev.mysql.com/doc/refman/5.0/ja/group-by-optimization.html –

+0

あなたは正しいが、より適切なページhttp://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html 'デフォルトでは、ORDERを指定したかのように、MySQLはすべてのGROUP BY col1、col2、...クエリをソートしますBY col1、col2、 ' – RichardTheKiwi

+0

Oracle 10gでは、「順序付け」がない場合(ソートではなくハッシュ)に新しいグループ・バイ・メカニズムが導入されました。私がやったのと同じミスを繰り返さないでください。結果をソートする必要がある場合は、ORDER BYを指定します。 – Ronnis

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句自体がどのようにしてが失敗するかはわかりません。あなたが良く分かっていれば、ここで尋ねる必要はないでしょう。

追加は完全に

WHERE `Record`.`RecordID` is not null 
GROUP BY 
`Record`.`RecordID` 
ORDER BY 
`Record`.`RecordID` 
関連する問題