我很難提出一個描述性標題,所以我認爲更好的方式來表達我想要的是一個例子。比方說,我有如下表:MySQL order by two varchar columns
NAME | EMAIL
John | [email protected]
Mike | [email protected]
NULL | [email protected]
Bill | [email protected]
我要訂購查詢,以便其結果將是:
NAME | EMAIL
NULL | [email protected]
Bill | [email protected]
John | [email protected]
Mike | [email protected]
如果它是不明確的,應當按名稱進行排序,並電子郵件,在NAME列沒有該行的條目時混合兩個優先級。因此,如果NAME爲NULL,它將使用EMAIL中的值對該行進行相對於其他行的排序,但如果NAME不是NULL,則它使用NAME而不是EMAIL進行排序。
正如你所猜測的,ORDER BY name ASC, email ASC
並沒有做到這一點。我不確定如何谷歌這一點,所以我轉向SO。提前致謝。
有很多答案,但這是我看到的第一個配合我最終做的事情(我有一個加入和更多的邏輯來添加,但是)。 – Orlando
那麼,其他人沒有仔細閱讀:),根據你的例子,大多數答案都假設所有的NULL都是最高的,但你很清楚這不是你所需要的。 –