Сравнение значений с запятыми Разделимые строки SQL PHP

Я использую двухуровневые прикованные кнопки выбора на моей веб-странице для фильтрации данных … У меня возникла проблема с моим запросом для вторых значений выбора …

Таблица:

id name cat loc 1 ABC resort mall road 2 BCD banquet hall mall road 3 CDE farm house, banquet hall pakhowal road 4 DEF hotel ferozpur road 5 FEZ hotel fountain chowk 6 ZEX resort mall road 

У меня есть два окна выбора, в которых первый для значений кошки DISTINCT …, который отлично работает для меня …

Запрос, который я использую:

 select distinct cat from (select trim(substring_index(substring_index (concat(cat,',,'),',',n),',',-1)) as cat from table t cross join (select 1 as n union all select 2 union all select 3) r) t where cat <> '' ORDER BY cat ASC 

Вывод:

 cat banquet hall farm house hotel resort 

Теперь я хочу сделать запрос, который выбирает все те области, которые имеют одинаковое значение для кота, которое мы выбираем в первом поле, например, если я выбираю «курорт» с первого выбора, он выбрал «mall road» для второго окна … и в случае, если я выбрал " банкетный зал ", тогда он должен был выбрать" шоссе "и" pakhowal road "и так далее.

Я также использовал запрос для этого, но он не работает должным образом для меня …

Второй запрос выбора окна:

 SELECT DISTINCT loc from table WHERE cat = '$_POST[cat]' AND loc IS NOT NULL 

Это дает правильный результат для «курортного» и «гостиничного» кота только …. если я выбрал «фермерский дом» или «банкетный зал», он не получит «дорогу pakhowal» …

Как я могу изменить свой запрос, чтобы достичь этого …?

Попробуй это:

 SELECT DISTINCT loc FROM [YourTable] WHERE INSTR(CONCAT(', ',cat,' ,'),CONCAT(', ','$_POST[cat]',' ,'))>0 AND loc IS NOT NULL