[英]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.