IF(($q1) > 0, 1, 0)
Esta es la parte que devuelve el error.
Además, tal como lo tienes, $q1
se está evaluando dos veces, lo que probablemente no sea lo que desea.
Si entiendo correctamente lo que está tratando de hacer, entonces debería poder omitir esta parte. Si $q1
no devuelve filas, entonces IN
expresión simplemente no coincidirá con nada en absoluto.
También debe tener en cuenta que IN
con subconsultas es bastante ineficiente en MySQL; correría mucho más rápido con una unión:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`