IF(($q1) > 0, 1, 0)
Det här är den del som returnerar felet.
Dessutom, som du har det, $q1
utvärderas två gånger, vilket förmodligen inte är vad du vill.
Om jag förstår rätt vad du försöker göra, bör du bara kunna utelämna den här delen. Om $q1
returnerar inga rader, sedan IN
uttryck kommer helt enkelt inte att matcha någonting alls.
Bör också notera att IN
med subqueries är ganska ineffektivt i MySQL; skulle springa mycket snabbare med en join:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`