作者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
1F:→ MOONRAKER:你太贪心了,没有这样用的。 09/16 15:22
2F:→ MOONRAKER:$sort = $row['a_photo_sort'] == 1 ? 'DESC' : 'ASC' ; 09/16 15:23
3F:→ MOONRAKER:然後再 "SELECT ... ORDER BY p_sort $sort" 不就结了! 09/16 15:23