Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql demande la disponibilité de la salle

IF(($q1) > 0, 1, 0)

C'est la partie renvoyant l'erreur.

Aussi, comme vous l'avez, $q1 est évalué deux fois, ce qui n'est probablement pas ce que vous voulez.

Si je comprends bien ce que vous essayez de faire, vous devriez pouvoir simplement laisser cette partie de côté. Si $q1 ne renvoie aucune ligne, puis le IN l'expression ne correspondra tout simplement à rien du tout.

Il convient également de noter que IN avec des sous-requêtes est plutôt inefficace dans MySQL ; s'exécuterait beaucoup plus rapidement avec une jointure :

SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`