理系学生日記

おまえはいつまで学生気分なのか

重複レコードを除去する DISTINCT

重複するレコードを表示しないためには,SELECT に DISTINCT を指定する.

|mysql| mysql> SELECT DISTINCT cust_id FROM account; +---------+ | cust_id | +---------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | +---------+ 13 rows in set (0.01 sec) ||< DISTINCT の逆 (重複であっても表示する) は ALL による指定.ただし,ALL はデフォルトの動作であるため,普通は指定しない.なんで ALL がデフォルトであるかは,DISTINCT 指定をするとソーティングが必要になるため.ソーティングは決して軽い処理ではないというわけかな. |mysql| mysql> SELECT ALL cust_id from account; +---------+ | cust_id | +---------+ | 1 | | 1 | | 1 | | 2 | | 2 | | 3 | | 3 | | 4 | | 4 | | 4 | | 5 | | 6 | | 6 | | 7 | | 8 | | 8 | | 9 | | 9 | | 9 | | 10 | | 10 | | 11 | | 12 | | 13 | +---------+ 24 rows in set (0.00 sec) ||<