php / mysql搜索多个值

| 我有一个带有(国家,城市,区域,已发布)字段的表房屋。我有一个搜索表,有人可以输入国家,城市或地区。我想获取所有已发布的房屋= 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-sensitiveivity.html     

要回复问题请先登录注册