Korte termijn oplossing
Gebruik de FIND_IN_SET-functie :
WHERE FIND_IN_SET('Queensland', csv_column)
...omdat het gebruik van LIKE met jokertekens aan beide uiteinden riskant is, afhankelijk van hoeveel/weinig overeenkomsten (en het zorgt ook voor een tafelscan). De prestaties van LIKE met jokertekens aan weerszijden zijn vergelijkbaar met REGEXP - dat betekent slecht.
Lange termijn oplossing
Sla geen door komma's gescheiden waarden op -- gebruik een goede veel-op-veel-relatie met drie tabellen:
Dingen
- thing_id (primaire sleutel)
Australische staten
- State_id (primaire sleutel)
- State_name
Things_to_Auz_States
- thing_id (primaire sleutel, refererende sleutel naar
THINGS
tafel) - State_id (primaire sleutel, refererende sleutel naar
AUSTRALIAN_STATES
tafel)
Je hebt JOIN's nodig om gegevens uit de drie tabellen te halen, maar als je wilt weten hoeveel er zijn gekoppeld aan een bepaalde staat, of twee bepaalde staten, is dit het juiste model.