IF(($q1) > 0, 1, 0)
Đây là phần trả về lỗi.
Ngoài ra, theo cách của bạn, $q1
đang được đánh giá hai lần, đây có thể không phải là điều bạn muốn.
Nếu tôi hiểu chính xác những gì bạn đang cố gắng làm, thì bạn có thể bỏ qua phần này. Nếu $q1
trả về không có hàng nào, sau đó là IN
chỉ đơn giản là biểu thức sẽ không khớp với bất kỳ thứ gì.
Cũng cần lưu ý rằng IN
với các truy vấn con khá kém hiệu quả trong MySQL; sẽ chạy nhanh hơn nhiều với một tham gia:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`