1
我對查詢中IF ELSE語句的工作方式感到困惑。針對ORDER BY的查詢中的IFELSE語句
這是我一直很努力,再加上它的變化,但我似乎無法得到它帶回結果沒有錯誤...
$get_trash = mysql_query("SELECT *
FROM message
WHERE message_to_user_id = '$user_id'
AND message_to_user_id_hide = 1
OR message_from_user_id = '$user_id'
AND message_from_user_id_hide = 1
IF message_to_user_id = '$user_id'
THEN ORDER BY message_to_user_id_hide_time DESC
ELSEIF
message_from_user_id = '$user_id'
THEN ORDER BY message_from_user_id_hide_time DESC
ENDIF") or die(mysql_error());
現在我如果else語句使用用PHP無數次,但我從來沒有在MySQL查詢中使用它,所以如果任何人可以闡明你如何去做,那麼我會非常感激!
我不認爲之類的東西有序的投影可以這樣做。您最好是在PHP中構建查詢或使用一組查詢在存儲過程中執行此項工作 – Perpetualcoder 2011-01-23 20:41:15
您在WHERE子句中有問題 - 它不會返回正確的結果,因爲對(from,to)不會是優化器顯而易見。你需要圍繞他們的括號。其次,from和to兩個字段都在結果集中 - 你不能同時按兩列排序。這個查詢最好是UNION語句。 – 2011-01-23 20:41:24