兩種輸入類型用於搜索。一個用於城市,州,郵編,文字的文本字段。另一個是針對「類型」商業搜索的選擇下拉菜單。
我想返回「位置」輸入的結果以及「類型」輸入。因此,如果用戶在「位置」輸入中搜索紐約紐約83745,並在「類型」輸入中搜索沃爾格林,則僅返回紐約紐約的Walgreens,83745。 但是,在我的查詢中使用CONCAT方法限制了這一點。用戶可以在「位置」輸入中使用逗號和空格。但是,「類型」輸入一起被忽略。如果我取出CONCAT並使用基本的單個WHERE子句,則兩種搜索類型只能一起使用。那麼,我怎樣才能讓CONCAT和"AND style LIKE '%$search_type%'";
一起工作呢?
$query = "SELECT street, city, state, type FROM location
WHERE
CONCAT(city, ', ', state, ', ', zip_code) LIKE '%$search_location%'
OR CONCAT(city, ' ', state, ' ', zip_code) LIKE '%$search_location%'
AND type LIKE '%$search_type%'";
現在... * *不能*是很好的指數利用率。用戶輸入也是非常嚴格的。你知道'AND'比'OR'有更高的優先級嗎? 'x OR y AND z'是'x OR(y AND z)'? – 2011-09-17 19:39:32
這是一個縮短的查詢。無論哪種方式,我想弄明白 – Graham
看起來你應該有兩個LIKE表達式的括號。 – Ramon