如果實際存在,是否有按列排序的方法?通過IF EXISTS訂購
即:SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
謝謝!
如果實際存在,是否有按列排序的方法?通過IF EXISTS訂購
即:SELECT * ORDER BY IF(EXISTS(order_column), order_column ASC, name_column DESC)
謝謝!
你可以使用ISNULL相反
ORDER BY
ISNULL(order_column, name_column)
不知道如何你添加DESC或ASC壽...
不行,必須EXISTS只能使用子查詢和WHERE子句中使用。你可以更具體嗎? 「現有專欄」是什麼意思?
這是我的猜測未經測試:
ORDER BY IF(ISNULL(order_column), "", order_column) ASC, name_column DESC
如果order_column爲NULL,一個空字符串將被取代,這不會影響排序。如果它不是NULL,它將在名稱列之前排序。
如果MySQL不會讓你使用的ORDER BY表達式,你總是可以創建在選擇「人工」列:要做到這一點,最好的辦法
SELECT
IF (ISNULL(order_column), " ", order_column)
AS my_order_column,
name_column
FROM table
ORDER BY my_order_column ASC, name_column DESC.
我已經想出了類似的東西,但由於我需要按order_column排序,只有當它實際存在時,這不會工作... – Mission 2009-11-20 09:29:19
我們中的一個人是嚴重的誤解。你能給我們一些可能的數據和你期望看到的結果嗎? – 2009-11-20 12:22:44
是創建一個表達式評估是否存在作爲選擇查詢的一部分。你可以有表達迴歸order_column或name_column
FPGA實現取決於你使用的是SQL,但在這裏你可以normallly我們IIF(...),但你可能需要檢查空
究竟是什麼意思:你想檢查表列是否存在,或者它是否包含值?通常'EXISTS'與子查詢結合使用,以檢查子查詢是否返回任何記錄。如果你想檢查實際列是否存在,你可以用'SHOW COLUMNS'來做到這一點。 – 2009-11-20 08:52:25
請解釋「如果它存在」的含義,如果我採用字面意思,如果該列不存在,查詢將不會運行,但會產生錯誤。如果你的意思是「如果列中的值不爲空」,那麼請編輯你的問題來說。 – 2009-11-20 08:52:37
我想檢查它是否真的存在。對不起,不清楚這一點。 – Mission 2009-11-20 09:08:25