簡體   English   中英

php / mysql搜索多個值

[英]php/mysql search for multiple values

我有一個帶有(國家,城市,區域,已發布)字段的表房屋。 我有一個搜索表,有人可以輸入國家,城市或地區。 我想獲取所有已發布的房屋= 1,並且任何搜索詞都與它們的任何字段匹配。

這是我到目前為止的內容:

SELECT * FROM homes 
WHERE published = 1 
AND 
LOWER(country) LIKE '$search%' 
OR 
LOWER(city) LIKE '$search%'
OR
LOWER(area) LIKE '$search%'

問題在於它返回已發布的房屋= 0 ...

我建議用括號。

SELECT * FROM homes 
WHERE published = 1 
AND
(
 LOWER(country) LIKE '$search%' 
 OR 
 LOWER(city) LIKE '$search%'
 OR
 LOWER(area) LIKE '$search%'
)
SELECT * 
FROM   homes 
WHERE  published = 1 
       AND ( country LIKE '$search%' 
              OR city LIKE '$search%' 
              OR area LIKE '$search%' ) 

就像已經不區分大小寫的東西一樣,因此您不需要它。

默認字符集和排序規則為latin1和latin1_swedish_ci,因此默認情況下非二進制字符串比較不區分大小寫。 這意味着,如果使用col_name LIKE'a%'搜索,則將獲得以A或a開頭的所有列值。 http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

暫無
暫無

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

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