我很困惑为什么我要从查询中返回行...
这是查询,它在单个表中搜索字符串的存在。
SELECT *
FROM `donor`
WHERE `col1` LIKE '%test%'
OR `col2` LIKE '%test%'
OR `col3` LIKE '%test%'
OR `col4` LIKE '%test%'
AND `delete` = 0
最后一行AND delete = 0
是否返回“删除”列为“1”的行?有没有人知道为什么会这样?
答案 0 :(得分:4)
重写WHERE子句,如下所示:
SELECT * FROM `donor` WHERE
(`col1` LIKE '%test%' OR
`col2` LIKE '%test%' OR
`col3` LIKE '%test%' OR
`col4` LIKE '%test%')
AND `delete` =0
您希望将第一组标准放在一起,然后执行AND操作。
答案 1 :(得分:1)
您需要将这些条件组合在括号()
中。试试这个:
SELECT * FROM `donor` WHERE
(`col1` LIKE '%test%' OR
`col2` LIKE '%test%' OR
`col3` LIKE '%test%' OR
`col4` LIKE '%test%') AND
`delete` =0