SQL запрос: где и как статистика - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь сделать запрос, чтобы получить результаты с нулевым значением в одном из своих столбцов, но по какой-то причине, когда я использую like, часть, в которой я исключаю ненулевые поля, не работает

SELECT * FROM my_column WHERE title LIKE "%hea%" OR department LIKE "%hea%" OR title_pt LIKE "%hea%" AND deleted_at IS NULL LIMIT 10 OFFSET 0

enter image description here

Ответы [ 3 ]

1 голос
/ 15 января 2020

Вам нужна скобка

SELECT * FROM my_column WHERE (title LIKE "%hea%" OR department LIKE "%hea%" OR
title_pt LIKE "%hea%") AND deleted_at IS NULL LIMIT 10 OFFSET 0

Думайте об этом как о математике, вы должны указать порядок действий. Вы на самом деле просили title_py LIKE "%hea" AND deleted_at IS NULL, в то время как другие OR не взаимодействовали с AND вообще.

1 голос
/ 15 января 2020

В скобках указаны ТОЛЬКО строки с deleted_at NULL И одним из других условий ИСТИНА:

SELECT * 
FROM my_column 
WHERE (   
          title      LIKE "%hea%" 
       OR department LIKE "%hea%" 
       OR title_pt   LIKE "%hea%"
      )
      AND 
          deleted_at IS NULL 
LIMIT 10 OFFSET 0
1 голос
/ 15 января 2020

Вы написали это:

SELECT * FROM my_column 
 WHERE (title LIKE "%hea%") OR (department LIKE "%hea%") 
    OR ((title_pt LIKE "%hea%") AND (deleted_at IS NULL)) 
LIMIT 10 OFFSET 0

Вы хотели это:

SELECT * FROM my_column 
 WHERE ((title LIKE "%hea%") OR (department LIKE "%hea%") OR (title_pt LIKE "%hea%")) 
   AND (deleted_at IS NULL) 
LIMIT 10 OFFSET 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...