将IF SQL从MySQL转换为PostgreSQL

时间:2010-03-07 20:31:19

标签: sql mysql postgresql

我正在转换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

1 个答案:

答案 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