sql >> データベース >  >> RDS >> Mysql

NOTIN値リストのMySQL変数形式

    INは使用できません そのような節。 シングルにコンパイルされます INの文字列 句。しかし、IN 条項には個別が必要です 値。

    WHERE id_campo not in (@idcamposexcluidos)
    

    コンパイルする

    WHERE id_campo not in ('817,803,495')
    

    でもそうあるべきです

    WHERE id_campo not in ('817','803','495')
    

    これを克服するには、動的SQLを使用するか、MySQLで FIND_IN_SET

    SET @idcamposexcluidos='817,803,495';
    ...
    WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
    

    ただし、FIND_IN_SET()のような関数を使用します インデックスを利用できません。



    1. SQLServerでIF...THENロジックを使用する方法

    2. PostgreSQLでのDegrees()関数のしくみ

    3. 変数を使用した動的クエリでIN句をどのように指定しますか?

    4. CentOS 7にApache、MySQL 8、またはMariaDB10とPHP7をインストールします