[英]sql query return wrong results
Why this query returns results where companyVisible is 0, even I am asking only for companies where companyVisible has value of 1? 为什么这个查询返回的结果是companyVisible为0,即使我只询问companyVisible值为1的公司?
SELECT c.companyID, c.companyDescription , c.companyName ,c.copmanyDrastiriotita, c.companyVisible
FROM company c
WHERE c.companyVisible = 1
AND c.companyDescription LIKE '%Keyword%'
OR c.companyName LIKE '%Keyword%'
OR c.copmanyDrastiriotita LIKE '%Keyword%'
AND
goes before OR
, so you need to add parentheses. AND
在OR
之前,因此您需要添加括号。
SELECT c.companyID, c.companyDescription , c.companyName ,c.copmanyDrastiriotita, c.companyVisible
FROM company c
WHERE c.companyVisible = 1
AND (c.companyDescription LIKE '%Keyword%'
OR c.companyName LIKE '%Keyword%'
OR c.copmanyDrastiriotita LIKE '%Keyword%')
Because of OR clause 因为OR子句
Apply brackets around AND ...OR
clause 在
AND ...OR
子句周围应用括号
Use this 用这个
SELECT c.companyID, c.companyDescription , c.companyName ,c.copmanyDrastiriotita, c.companyVisible
FROM company c
WHERE c.companyVisible = 1
AND (c.companyDescription LIKE '%Keyword%'
OR c.companyName LIKE '%Keyword%'
OR c.copmanyDrastiriotita LIKE '%Keyword%')
Using disjunctive normal form: 使用析取范式:
SELECT c.companyID,
c.companyDescription, c.companyName, c.copmanyDrastiriotita,
c.companyVisible
FROM company c
WHERE ( c.companyVisible = 1 AND c.companyName LIKE '%Keyword%' )
OR ( c.companyVisible = 1 AND c.companyDescription LIKE '%Keyword%' )
OR ( c.companyVisible = 1 AND c.copmanyDrastiriotita LIKE '%Keyword%' )
Using primitive operators ( c3
could be a VIEW
): 使用原始运算符(
c3
可以是VIEW
):
SELECT c2.companyID,
c2.companyDescription, c2.companyName, c2.copmanyDrastiriotita,
c2.companyVisible
FROM company c2, (
SELECT c1.companyID, c1.companyName AS text_to_search
FROM company c1
UNION
SELECT c.companyID, c.companyDescription AS text_to_search
FROM company c1
UNION
SELECT c1.companyID, c1.copmanyDrastiriotita AS text_to_search
FROM company c1
) AS c3 ( companyID, text_to_search )
WHERE c2.companyVisible = 1
AND c3.text_to_search LIKE '%Keyword%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.