Krátkodobé řešení
Použijte funkci FIND_IN_SET :
WHERE FIND_IN_SET('Queensland', csv_column)
...protože použití LIKE se zástupnými znaky na obou koncích je riskantní v závislosti na tom, kolik/málo se shoduje (a také zajišťuje skenování tabulky). Výkon LIKE se zástupnými znaky na obou stranách je na stejné úrovni jako REGEXP – to znamená špatné.
Dlouhodobé řešení
Neukládejte hodnoty oddělené čárkami – použijte správný vztah mnoho k mnoha, který zahrnuje tři tabulky:
Věci
- thing_id (primární klíč)
Australské státy
- State_id (primární klíč)
- Název státu
Things_to_Auz_States
- thing_id (primární klíč, cizí klíč k
THINGS
tabulka) - State_id (primární klíč, cizí klíč pro
AUSTRALIAN_STATES
tabulka)
K získání dat ze tří tabulek budete potřebovat JOINy, ale pokud chcete vědět věci, jako je počet přidružených ke konkrétnímu stavu nebo ke dvěma konkrétním stavům, je to správný model.