私たちはグループ化されたときに正しく複数の列を注文する(MyISAMテーブル経由)GROUP_CONCATに依存しているいくつかのキーのクエリを持っている大規模なデータベースで働いています。基本的に、各行に正しいデータを確実に取得するようにします。例私は、各郵便番号にある特定の状態に持っているレコードの数を知りたいと思ったが、アドレスごとに1つのだけのレコードがあれば:Brighthouse group_concatの代替手段ですか?
私が持っている
SELECT state AS state,
zip AS zip,
COUNT(id) AS total
FROM (SELECT CAST(Substring_index(GROUP_CONCAT(id ORDER BY state, zip, city,
address,
id),
',', 1)
AS UNSIGNED) AS id,
CAST(Substring_index(GROUP_CONCAT(zip ORDER BY state, zip, city,
address
, id),
',', 1
) AS UNSIGNED) AS zip,
CAST(Substring_index(GROUP_CONCAT(state ORDER BY state, zip, city
,
address, id),
',',
1) AS CHAR) AS state
FROM DATABASE.table
GROUP BY st,
zip,
city,
address) AS a
GROUP BY zip
ORDER BY zip
(IDは一意符号なしの数値です) myisam、そして演奏するための同一のデータを持つbrighthouseデータベースを含む。私は単純な選択をやっている場合は、明らかにbrighthouseは、巨大なパフォーマンス上の利点を持っているので、私はbrighthouseスピードを活用することができ、同一の結果でクエリを実行する方法を見つけることを期待しています。
編集:自分自身を修正するには、私が以前に述べたようにInnoDBは、Brighthouseエンジンでこれと同じことを実現クエリをない見つけるしたいと思います。
は、私が見ることができませんか? http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat – wonk0
GROUP_CONCATはbrighthouseではサポートされていません:MySQLエンジンによって実行される照会構文はBrighthouseに実装されていません。 – Jeff
InnoDBに言及しました。当然にInfobright/Brighthouseが手動 – wonk0