我有一個表,我試圖運行一個SQL查詢(經典ASP)。該表的結構類似於這樣:ASP SQL在一個表中的多列中搜索一個字符串
ID Name City State Zip Country
1 Name1 Los Angeles CA 90210 USA
2 Miami New York NY 10011 USA
3 Name3 Miami FL 33184 USA
我希望能夠運行一個查詢,檢索多個列(如「邁阿密,佛羅里達州)並返回正確的結果
搜索進來作爲Name=SearchTerm
,和我目前的SQL查詢是:
fp_sQry="SELECT * FROM tableName WHERE ((Shiur = '2') or (Shiur IS NULL)) AND ((City LIKE '::Name::%') or (State LIKE '%::Name::') or (Name LIKE '%::Name::%') or (Zip LIKE '%::Name::%') or (Country LIKE '%::Name::%')) AND (Nusach LIKE '%::Nusach::%') ORDER BY Name ASC"
既然這樣,我只能對單個列執行搜索,所以Name=Miami
實際搜索的所有列返回所有正確的結果,而Name=Miami
, + FL或Name=Miami+FL
返回0結果。
有關如何調整我的查詢以匹配多個列中查詢的多個部分的任何想法?
這個答案幫助澄清了一些事情,謝謝一堆! ('Shiur ='2')或者'()'或者'fp_sQry ='SELECT * FROM tblShuls WHERE((Shiur ='2'))或者使用DIM searchTerm仍然不能工作,inputSplit searchTerm = Request.querystring(「Name」)inputSplit = Split(searchTerm,「,」) (Shiur IS NULL))AND City + State + Name + Zip + Country LIKE'%:: response.write searchTerm ::%'or(City =':: City ::')or(Country =':: Country: :')AND(Nusach LIKE'%:: Nusach ::%')ORDER BY Name ASC「' 我最終得到了我的數據庫中所有條目的結果,所以它們顯然都符合這個非常開放的通配符。 –
我不認爲'response.write searchTerm'屬於那裏。但是,您仍然應該使用參數化查詢(請參閱我的答案中的最後一個鏈接或[此問題]的答案(http://stackoverflow.com/q/1092512/1630171))。 –