sql >> Databáze >  >> RDS >> Mysql

Jak hledat vícenásobné hodnoty oddělené čárkami v mysql

Řekl bych, že zde vaše struktura dat není zcela v pořádku.

Lepším řešením by bylo neukládat několik hodnot do jednoho pole pomocí nějakého formátu odděleného čárkami, ale použít tři tabulky definované tímto způsobem:

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


S tím vyhledávání záznamů v searchtest které mají konkrétní klíčová slova, by bylo jednoduché jako :

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'


A navíc byste museli hledat položky searchtest s konkrétním jménem:

select *
from searchtest
where name = 'trophy1'


  1. SQL Server:Jaký je rozdíl mezi CROSS JOIN a FULL OUTER JOIN?

  2. Jak vybrat vnitřní spojovací pole s IF/case?

  3. Přidejte data ke stávajícím datům v databázi MySQL

  4. Převeďte MySQL do XML pomocí PHP