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

Jak wyszukać wiele wartości oddzielonych przecinkami w mysql

Powiedziałbym, że tutaj twoja struktura danych jest niewłaściwa.

Lepszym rozwiązaniem byłoby nie przechowywanie kilku wartości w jednym polu przy użyciu jakiegoś formatu oddzielonego przecinkami, ale użycie trzech tabel, zdefiniowanych w ten sposób:

  • searchtest
    • id
    • name
  • keywords
    • id
    • word
  • keywords_searchtest
    • id_keyword
    • id_searchtest


Dzięki temu wyszukiwanie wpisów w searchtest które mają określone słowa kluczowe, byłyby tak proste, jak :

select searchtest.*, keywords.*
from searchtest
    inner join keywords_searchtest on keywords_searchtest.id_searchtest = searchtest.id
    inner join keywords on keywords.id = keywords_searchtest.id_keyword
where keywords.word = 'test2'


Ponadto trzeba by szukać wpisów Searchtest o określonej nazwie :

select *
from searchtest
where name = 'trophy1'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ustaw przecięcie w MySQL:czysty sposób

  2. Nie można znaleźć pliku mysql.h

  3. GROUP_CONCAT ZAMÓWIENIE WEDŁUG

  4. Funkcje wyszukiwania MySQL i PostgreSQL JSON

  5. Czy czas UNIX rejestruje strefę czasową?