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

MySQL FIND_IN_SET() nie działa zgodnie z oczekiwaniami

Zgodnie z dokumentacją - FIND_IN_SET Drugim argumentem jest lista oddzielona przecinkami. A więc wartość 10, 4, 7, 1 dzielenie przez przecinek staje się następującymi 4 wartościami:

  1. 10
  2. 4 - spacja, po której następuje 4
  3. 7 - spacja, po której następuje 7
  4. 1 - spacja, po której następuje 1

Żaden z nich nie jest równy 1

Rozwiązanie:przestań używać tego podejścia i znormalizuj swój schemat tak, aby używał jeden-do-wielu (lub wiele-do-wielu).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz zapytanie w dwóch tabelach w MySQL

  2. Kopia zapasowa i przywracanie MySQL z wiersza poleceń

  3. Kiedy używać daty i godziny lub znacznika czasu

  4. Unikaj podwójnych cudzysłowów ze zmienną wewnątrz echa HTML

  5. Zrzuć bazę danych mysql do kopii zapasowej w postaci zwykłego tekstu (CSV) z wiersza poleceń