sql >> Database >  >> RDS >> Mysql

MySQL-variabelenformaat voor een NOT IN-lijst met waarden

U kunt de IN . niet gebruiken zo'n clausule. Het compileert tot een single tekenreeks in uw IN clausule. Maar een IN clausule moet afzonderlijk waarden.

WHERE id_campo not in (@idcamposexcluidos)

compileert naar

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

maar het zou moeten zijn

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

Om dit te verhelpen, gebruikt u ofwel dynamische SQL of in MySQL kunt u FIND_IN_SET :

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

maar met een functie zoals FIND_IN_SET() kan geen gebruik maken van indexen.



  1. MySQL-server heeft onvoldoende geheugen of start niet

  2. verander de kolom voor het neerzetten van tabellen in de Oracle-database

  3. Stop met SQL Server je vuile werk te laten doen

  4. ORA-12514 TNS:luisteraar weet momenteel niet welke service is aangevraagd in connect-descriptor