IF(($q1) > 0, 1, 0)
Questa è la parte che restituisce l'errore.
Inoltre, per come l'hai fatto, $q1
viene valutato due volte, il che probabilmente non è quello che desideri.
Se ho capito bene cosa stai cercando di fare, dovresti essere in grado di omettere questa parte. Se $q1
non restituisce righe, quindi IN
espressione semplicemente non corrisponderà a nulla.
Dovresti anche notare che IN
con sottoquery è piuttosto inefficiente in MySQL; funzionerebbe molto più velocemente con un join:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`