Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Format zmiennej MySQL dla listy wartości NOT IN

Nie możesz użyć IN taka klauzula. Kompiluje się do singla ciąg w Twoim IN klauzula. Ale IN klauzula wymaga oddzielenia wartości.

WHERE id_campo not in (@idcamposexcluidos)

kompiluje do

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

ale powinno być

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

Aby rozwiązać ten problem, użyj dynamicznego SQL lub MySQL, możesz użyć ZNAJDŹ_IN_SET :

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

ale używając funkcji takiej jak FIND_IN_SET() nie może korzystać z indeksów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Raportowanie błędów przygotowanych przez MySQLi

  2. Android JDBC nie działa:ClassNotFoundException na sterowniku

  3. phpMyAdmin - nie mogę się połączyć - nieprawidłowe ustawienia - odkąd dodałem hasło roota - zablokowane

  4. Kolumna alternatywnej tabeli MySQL

  5. MySQL — ta wersja MySQL nie obsługuje jeszcze podzapytania 'LIMIT &IN/ALL/ANY/SOME