Краткосрочно решение
Използвайте функцията FIND_IN_SET :
WHERE FIND_IN_SET('Queensland', csv_column)
...защото използването на LIKE със заместващи знаци от двата края е рисковано, в зависимост от това колко/малко съвпадения (и също така гарантира сканиране на таблицата). Изпълнението на LIKE със заместващи знаци от двете страни е наравно с REGEXP – това означава лошо.
Дългосрочно решение
Не съхранявайте стойности, разделени със запетая - използвайте правилна връзка много към много, включваща три таблици:
Неща
- thing_id (първичен ключ)
Австралийски щати
- State_id (първичен ключ)
- Име на щат
Things_to_Auz_States
- thing_id (първичен ключ, външен ключ към
THINGS
таблица) - State_id (първичен ключ, външен ключ към
AUSTRALIAN_STATES
таблица)
Ще ви трябват JOIN, за да извлечете данни от трите таблици, но ако искате да знаете неща като това колко са свързани с определено състояние или две конкретни състояния, това е правилният модел.