簡體   English   中英

使用逗號分隔的字符串SQL PHP比較值

[英]Compare Value with Comma Separated String 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

現在,我要進行查詢,以選擇我們在第一個框中選擇的具有相同貓咪值的所有區域,例如,如果我從第一個框中選擇“度假村”,則在第二個框中選擇“購物中心” ...如果我選擇了“宴會廳”,則應選擇“商場路”和“百老匯路”等。

我也為此使用了查詢,但對我來說它無法正常工作...

第二選擇框查詢:

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

它只為“度假勝地”和“旅館”貓提供正確的輸出。...如果我選擇“農舍”或“宴會廳”,它不會獲取“百老匯路” ...

如何更改查詢以實現此目標?

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM