将值与逗号分隔的字符串进行比较 SQL PHP
Compare Value with Comma Separated String SQL PHP
我在我的网页上使用双层链式 select 框来过滤数据...我在查询第二个 select 值时遇到问题...
table:
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
我有两个 select 框,其中第一个用于不同的猫值...这对我来说非常有用...
我使用的查询是:
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
现在我想查询 select 与第一个框中 select 具有相同猫值的所有区域,例如如果我 select "resort" 来自首先 select 它为第二个框选择了 "mall road" ...如果我选择 "banquet hall" 那么它应该选择 "mall road" 和 "pakhowal road" 等等。
我也为此使用了查询,但它对我来说工作不正常...
第二个select框查询:
SELECT DISTINCT loc
from table
WHERE cat = '$_POST[cat]' AND loc IS NOT NULL
它只为 "resort" 和 "hotel" cat 提供正确的输出....如果我选择 "farm house" 或 "banquet hall" 它不会获取 "pakhowal road"...
如何更改我的查询以实现此...?
试试这个:
SELECT DISTINCT loc
FROM [YourTable]
WHERE INSTR(CONCAT(', ',cat,' ,'),CONCAT(', ','$_POST[cat]',' ,'))>0 AND loc IS NOT NULL
我在我的网页上使用双层链式 select 框来过滤数据...我在查询第二个 select 值时遇到问题...
table:
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
我有两个 select 框,其中第一个用于不同的猫值...这对我来说非常有用...
我使用的查询是:
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
现在我想查询 select 与第一个框中 select 具有相同猫值的所有区域,例如如果我 select "resort" 来自首先 select 它为第二个框选择了 "mall road" ...如果我选择 "banquet hall" 那么它应该选择 "mall road" 和 "pakhowal road" 等等。
我也为此使用了查询,但它对我来说工作不正常...
第二个select框查询:
SELECT DISTINCT loc
from table
WHERE cat = '$_POST[cat]' AND loc IS NOT NULL
它只为 "resort" 和 "hotel" cat 提供正确的输出....如果我选择 "farm house" 或 "banquet hall" 它不会获取 "pakhowal road"...
如何更改我的查询以实现此...?
试试这个:
SELECT DISTINCT loc
FROM [YourTable]
WHERE INSTR(CONCAT(', ',cat,' ,'),CONCAT(', ','$_POST[cat]',' ,'))>0 AND loc IS NOT NULL