IF(($q1) > 0, 1, 0)
Това е частта, която връща грешката.
Също така, както го имате, $q1
се оценява два пъти, което вероятно не е това, което искате.
Ако разбирам правилно какво се опитвате да направите, тогава трябва да можете просто да пропуснете тази част. Ако $q1
не връща редове, след това IN
изразът просто няма да съвпадне с нищо.
Трябва също да отбележим, че IN
с подзаявки е доста неефективно в MySQL; ще работи много по-бързо с присъединяване:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`