MySQLでidだけをSELECTして、カンマ区切りにして出力する

SELECT GROUP_CONCAT(id SEPARATOR ', ') FROM examples;
+-------------------------------------------------------------------------------------+
| GROUP_CONCAT( id SEPARATOR ', ')                                                    |
+-------------------------------------------------------------------------------------+
| 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146 | 
+-------------------------------------------------------------------------------------+

ちょっとデバッグ目的で、mysqlコンソールで直接SQL書いて、どんなデータが取れるか確認したかった。ただ、perlでは1回SELECTして、その結果をwhileで回して、それを元にSELECTをしてって感じなので、それをやるにはWHERE IN()を使う事になります。それで、WHERE IN()に渡す為の、カンマ区切りのidが欲しかったので、調べてやってみました。これならWHERE IN()のとこにコピペできます。

サブクエリーでやれよって話かもしれないけど、実際に書いてたスクリプトはJOINとかしてて複雑なSQLだったので。MySQLは、JOINありのサブクエリーって苦手なのか、かなり遅いのでクエリーを分けたかったので。

書いた時期

2011-09-29