作者chan15 (ChaN)
看板PHP
標題[請益] MySQL CASE WHEN用法一問
時間Thu Sep 16 14:03:15 2010
相簿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
→ MOONRAKER:你太貪心了,沒有這樣用的。 09/16 15:22
→ MOONRAKER:$sort = $row['a_photo_sort'] == 1 ? 'DESC' : 'ASC' ; 09/16 15:23
→ MOONRAKER:然後再 "SELECT ... ORDER BY p_sort $sort" 不就結了! 09/16 15:23