1

我在我的网页上使用双层链接选择框来过滤数据...我在查询第二个选择值时遇到问题...

桌子:

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

现在我想进行一个查询,它选择我们在第一个框中选择的所有具有相同 cat 值的区域,例如如果我从第一个选择中选择“resort”,它为第二个框选择了“mall road”......如果我选择了“宴会厅”则应选择“商场路”和“pakhowal路”等。

我也为此使用了一个查询,但它对我来说不能正常工作......

第二个选择框查询:

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

它只为“度假村”和“酒店”猫提供正确的输出......如果我选择“农舍”或“宴会厅”,它不会获取“pakhowal 路”......

我怎样才能改变我的查询来实现这个......?

4

1 回答 1

2

试试这个:

SELECT DISTINCT loc
FROM [YourTable]
WHERE INSTR(CONCAT(', ',cat,' ,'),CONCAT(', ','$_POST[cat]',' ,'))>0 AND loc IS NOT NULL 
于 2016-12-06T09:35:33.420 回答