Проблема в SQL И ГДЕ работает второе условие, первое не работает - PullRequest
0 голосов
/ 22 октября 2018

У меня есть запрос следующим образом

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

По некоторым причинам первое условие не работает, но второе условие работает.Я получаю результаты в соответствии с поиском, но флаги состояния и корзины не работают.

Ответы [ 5 ]

0 голосов
/ 23 октября 2018

В этих полях может быть некоторое значение NULL

SELECT *
FROM blogs
WHERE (status = 1 AND trash = 0)
  AND (isnull(url,'') LIKE '%searchString%' OR isnull(metaTitle,'') LIKE '%searchString%');
0 голосов
/ 22 октября 2018

Удалить закрывающие скобки в первом и состоянии

SELECT * FROM blogs WHERE status = 1 AND trash = 0 AND (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');
0 голосов
/ 22 октября 2018

Попробуйте этот код ниже

SELECT *
FROM blogs
WHERE status = 1 AND trash = 0 AND
      (url LIKE '%searchString%' OR metaTitle LIKE '%searchString%');
0 голосов
/ 22 октября 2018

Делайте это, когда набираете Где ....

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

Это может быть работа .... Потому что у вас есть работа три AND Итак, определите сначала AND, затем выполните ваши LIKE вСкобки.

0 голосов
/ 22 октября 2018

Я думаю, вам нужно удалить () вокруг этого: (status = 1 AND trash = 0).Если status = 0 и trash = 1, это будет иметь значение true, если у вас есть скобки вокруг него.Попробуй.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...