Conversion of IF SQL from MySQL to PostgreSQL
I'm converting a PHP script as DB has been switched from MySQL to PostgreSQL.
I know PG doe开发者_运维技巧sn't have the IF function but does have the CASE function. What is the best way to convert this MySQL statement?
  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
Something like this should work:
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
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论