MySQL
- MySQLの
ORDER BY column_name ASC
で、column_nameがNULLのレコードは先に取得されるが、以下のように記述することで、column_nameがNULLのレコードをあとに取得できる。
SELECT * FROM table_name ORDER BY column_name IS NULL ASC, column_name ASC;
Codeigniter
上記をPHPのCodeigniterで実現する場合の書き方は以下
$this->db->order_by('column_name IS NULL', 'ASC', FALSE);
$this->db->order_by('column_name', 'ASC');
- 第1引数に
IS NULL
を入れるため、第3引数にFALSEを指定して、明示的にエスケープを外している - 参考記事