我有2个MYSQL表, firma 和 rach
id_fir | nazwa | opis | nr_konta | logo ------------------------------------------------- 0 | abc | abc | 123 | img/abc.png 1 | qwerty| qwert | 123 | img/qwerty.png
id_rach | id_fir | data_termin | data_platnosc | kwota ---------------------------------------------------------------- 0 | 1 | 2013-09-30 | null | 123 1 | 0 | 2013-09-30 | 2013-09-17 | 123 2 | 0 | 2013-09-26 | 2013-09-21 | 321 3 | 1 | 2013-09-27 | null | 333
我的SQL查询:
SELECT r.`id_rach` , f.`nazwa` , f.`opis` , r.`kwota` , r.`data_termin` , r.`data_platnosc`
FROM rach r
INNER JOIN firma f
USING ( id_fir )
ORDER BY `data_platnosc` IS NULL asc, `data_termin` desc
我到目前为止:
id_rach | nazwa | opis | kwota | data_termin | data_platnosc ----------------------------------------------------------------- 1 | abc | abc | 123 | 2013-09-30 | 2013-09-17 2 | abc | abc | 321 | 2013-09-26 | 2013-09-21 0 | qwerty| qwerty| 123 | 2013-09-30 | null 3 | qwerty| qwerty| 333 | 2013-09-27 | null
我想得到结果:
首先data_platnosc为null,data_termin命令为desc
然后是其他data_termin命令desc
id_rach | nazwa | opis | kwota | data_termin | data_platnosc ----------------------------------------------------------------- 0 | qwerty| qwerty| 123 | 2013-09-30 | null 3 | qwerty| qwerty| 333 | 2013-09-27 | null 1 | abc | abc | 123 | 2013-09-30 | 2013-09-17 2 | abc | abc | 321 | 2013-09-26 | 2013-09-21
和这个解决方案?
我想得到结果:
首先data_platnosc为null,data_termin为asc
然后其他data_termin不是null order desc
id_rach | nazwa | opis | kwota | data_termin | data_platnosc ----------------------------------------------------------------- 3 | qwerty| qwerty| 333 | 2013-09-27 | null 0 | qwerty| qwerty| 123 | 2013-09-30 | null 1 | abc | abc | 123 | 2013-09-30 | 2013-09-17 2 | abc | abc | 321 | 2013-09-26 | 2013-09-21
答案 0 :(得分:0)
您的order by
几乎正确无误:
ORDER BY `data_platnosc` IS NULL desc, `data_termin` desc
如果您想首先使用NULL
值,请使用desc
作为order by
的第一个元素。 <{1}}如果为真,则返回IS NULL
,并且您首先想要它。
或者,您可以使用1
:
IS NOT NULL
为此:
首先data_platnosc为null,data_termin为asc。然后其他data_termin不是null order desc
使用ORDER BY `data_platnosc` IS NOT NULL asc, `data_termin` desc
声明:
case