解決云夢(mèng)數(shù)據(jù)庫(kù)中時(shí)間字段為 NULL 時(shí)靠前排的問(wèn)題
解決云夢(mèng)數(shù)據(jù)庫(kù)中時(shí)間字段為 NULL 時(shí)靠前排的問(wèn)題
當(dāng)前云夢(mèng)數(shù)據(jù)庫(kù)中有字段的值為 NULL,比如創(chuàng)建時(shí)間(create_time)那么我們按創(chuàng)建時(shí)間倒序排列是,create_time = NULL 會(huì)排在有時(shí)間值的前面,通常我們希望將有具體時(shí)間值的排在前面,那么可以通過(guò)如下方式實(shí)現(xiàn)。
ORDER BY create_time DESC, CASE WHEN modify_time IS NULL THEN 1 ELSE 0 END, modify_time DESC
說(shuō)明:先按有具體時(shí)間值的創(chuàng)建時(shí)間(create_time)倒序排列,再按有具體時(shí)間值修改時(shí)間(modify_time)倒序排列,最后創(chuàng)建時(shí)間和修改時(shí)間為 NULL 的排列。
比如在使用 MyBatis Plus 時(shí)如下寫(xiě):
queryWrapper.last(" ORDER BY create_time DESC, CASE WHEN modify_time IS NULL THEN 1 ELSE 0 END, modify_time DESC ");

浙公網(wǎng)安備 33010602011771號(hào)