I have a big query:
SELECT * FROM ( SELECT p.id, p.groupid, p.postid, p.date, p.likes, p.reposts, p.text, p.att1_type, p.att1_data, p.att2_type, p.att2_data, p.att3_type, p.att3_data, p.att4_type, p.att4_data, p.att5_type, p.att5_data, p.att6_type, p.att6_data, p.att7_type, p.att7_data, p.att8_type, p.att8_data, p.att9_type, p.att9_data, p.att10_type, att10_data, g.rating FROM `posts` p JOIN `grouplists` g ON p.`groupid` = g.`groupid` WHERE g.`usid` = '$usid' AND p.`reposts` >= g.`reposts` AND p.`likes` >= g.`likes` AND g.`hide` = '0' ORDER BY p.date DESC LIMIT 40 ) AS tmp ORDER BY tmp.`rating` DESC I need to add something like: ORDER BY p.$sortMode :
AND p.postid IN (SELECT pid FROM stamps WHERE checkdate-cdate<=g.timeout) But you need to add this line only if g.timeout not zero ( 0 ), otherwise you need to do nothing. I tried to figure out how to do this with CASE and with IF() , but it doesn't work. Tell me, please, how to implement it.
... AND (g.timeout = 0 OR p.postid IN (SELECT pid FROM stamps WHERE checkdate-cdate<=g.timeout))- BOPOH