SQL中的问题,并且第二个条件有效,第一个条件不起作用

时间:2018-10-22 09:44:14

标签: php sql codeigniter

我有一个查询如下

SELECT *
FROM blogs
WHERE (status = 1 AND trash = 0)
  AND (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');

由于某种原因,第一个条件不起作用,但是第二个条件起作用。我根据搜索得到了结果,但是状态和垃圾桶标记不起作用。

5 个答案:

答案 0 :(得分:1)

我认为您需要删除():(状态= 1 AND垃圾= 0)。 如果状态= 0且垃圾桶= 1,则如果您使用方括号将其解析为true。放手吧。

答案 1 :(得分:1)

在键入Where ....

时执行此操作
WHERE status ='1' AND trash ='0' AND (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');

可能有用。...因为您有三个工作AND,所以先定义AND,然后将LIKE放入括号。

答案 2 :(得分:0)

请尝试以下代码

SELECT *
FROM blogs
WHERE status = 1 AND trash = 0 AND
      (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');

答案 3 :(得分:0)

先取下条件的右方括号

SELECT * FROM blogs WHERE status = 1 AND trash = 0 AND (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');

答案 4 :(得分:0)

这些字段中可能有一些NULL值

SELECT *
FROM blogs
WHERE (status = 1 AND trash = 0)
  AND (isnull(url,'') LIKE '%searchString%' OR isnull(metaTitle,'') LIKE '%searchString%');