我正在转换PHP脚本,因为DB已从MySQL切换到PostgreSQL。
我知道PG没有IF功能,但确实有CASE功能。转换此MySQL语句的最佳方法是什么?
SELECT albums.id,
albums.albumname,
sum(if(((albums.id=allalbums.albumid) and
(allalbums.photoid=$photoid)),1,0)) as inalbum
FROM albums, allalbums
GROUP BY albums.id
ORDER BY albums.createdate desc
答案 0 :(得分:4)
这样的事情应该有效:
select
albums.id,
albums.albumname,
sum(
case when ((albums.id=allalbums.albumid) and (allalbums.photoid=$photoid)) then 1
else 0
end
) as inalbum
from albums,allalbums
group by albums.id
order by albums.createdate desc