Я использую двухуровневые прикованные кнопки выбора на моей веб-странице для фильтрации данных … У меня возникла проблема с моим запросом для вторых значений выбора …
Таблица:
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