[請益] MySQL CASE WHEN用法一問

看板PHP作者 (ChaN)時間15年前 (2010/09/16 14:03), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
相簿table tbl_album a_id //pk a_label //相簿名稱 a_photo_sort // 相片正向排序或逆向排序 0.ASC, 1.DESC 相片table tbl_photos p_id //pk p_sort // 排序 xxxx xxx tbl_album_fk // tabl_album fk 篩選出相片以後 有兩個欄位要給下面要列出的相片當依據 $row['a_id']; $row['a_photo_sort']; $sql = spinrtf("SELECT * FROM tbl_photos WHERE tbl_album_fk = %s ORDER BY p_sort CASE %s WHEN 1 THEN DESC WHEN 0 THEN ASC END" ,$row['a_id'], $row['a_photo_sort']); 我發現CASE WHEN不能直接輸出成THEN ASC或THEN DESC,必須為文字,例如THEN 'ASC' 但SQL不接受ORDER BY 'ASC',所以不知道該怎麼下才能達到我的目的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.163.57

09/16 15:22, , 1F
你太貪心了,沒有這樣用的。
09/16 15:22, 1F

09/16 15:23, , 2F
$sort = $row['a_photo_sort'] == 1 ? 'DESC' : 'ASC' ;
09/16 15:23, 2F

09/16 15:23, , 3F
然後再 "SELECT ... ORDER BY p_sort $sort" 不就結了!
09/16 15:23, 3F
文章代碼(AID): #1CaRCb3o (PHP)
文章代碼(AID): #1CaRCb3o (PHP)