I fetch an array with todo titles and due dates from MySQL. I want to order it by date and have the oldest on top. But there are some todos without a date. These todos I don't want to show at first positions but rather at the bottom of my list. Unfortunately MySQL put the empty ones first.
Is there any way I can do it in one query (can't use MySQLi, using CI's ActiveRecord). I could run a second query for all todos without dates and put them at the bottom. But I'd like to make it in one query – if possible?
Yes
You can use this:
You can do it in MySQL with the
ORDER BY
clause. Sort byNULL
first, then the date.Note: This assumes rows without a date are
NULL
.possibly add a
NVL( thedate, to_date('2099-12-31','yyyy-mm-dd'))
in the order by clauseWell, as a pure MySQL answer, I would probably do it like this.