SQL-запрос со словами «Между», «И» или «ИЛИ» в пунктах «Где» не даны правильные ответы - PullRequest
1 голос
/ 11 июня 2019
SELECT * 
FROM vtiger_crmentity 
where createdtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47' 
   OR modifiedtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47' 
  AND smownerid = '1' 
  AND setype = 'Potentials' 
  AND deleted = '0'`

Но не дай мне правильный ответ, как я хочу, Предлагаю улучшить. ответ из базы данных с запросом. https://prnt.sc/o0hhq9

Ответы [ 2 ]

3 голосов
/ 11 июня 2019

Вам нужны скобки для условия OR.

SELECT * 
FROM vtiger_crmentity 
where (createdtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47' 
   OR modifiedtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47')
  AND smownerid = '1' 
  AND setype = 'Potentials' 
  AND deleted = '0'`
0 голосов
/ 11 июня 2019

Попробуйте использовать круглые скобки () для разделения логики ИЛИ; обновленный код может выглядеть как

SELECT *
FROM vtiger_crmentity
WHERE 
    (
        createdtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47'
        OR
        modifiedtime BETWEEN '2019-06-11 14:07:47' AND '2019-06-11 14:08:47'
    ) 
    AND smownerid = '1' 
    AND setype = 'Potentials' 
    AND deleted = '0'
;
...