SQLite иногда игнорирует значение столбца - PullRequest
1 голос
/ 16 марта 2019

В некоторых случаях sqlite игнорирует условие before и operator и просто вместо этого использует операторы or, что приводит к слишком большому количеству ответов, которые не помещаются, потому что их нет в этой таблице imenik

SELECT k.ime, k.priimek, k.naslov, k.tel_st, k.gmail, kr.ime FROM kontakti k 
    INNER JOIN kraji kr ON kr.id = k.kraj_id 
    INNER JOIN imeniki i ON i.id = k.imenik_id 
WHERE (i.ime = 'as') 
   AND (k.ime LIKE '%a%') 
   OR (k.priimek LIKE '%a%') 
   OR (k.naslov LIKE '%a%') 
   OR (k.tel_st LIKE '%a%') 
   OR (k.gmail LIKE '%a%') 
   OR (kr.ime LIKE '%a%');

1 Ответ

0 голосов
/ 16 марта 2019

Я думаю, вам следует добавить несколько дополнительных скобок (поставить все условия после операнда AND внутри двух скобок) :

SELECT k.ime, k.priimek, k.naslov, k.tel_st, k.gmail, kr.ime FROM kontakti k 
    INNER JOIN kraji kr ON kr.id = k.kraj_id 
    INNER JOIN imeniki i ON i.id = k.imenik_id 
WHERE (i.ime = 'as') 
    AND ((k.ime LIKE '%a%') 
    OR (k.priimek LIKE '%a%') 
    OR (k.naslov LIKE '%a%') 
    OR (k.tel_st LIKE '%a%') 
    OR (k.gmail LIKE '%a%') 
    OR (kr.ime LIKE '%a%'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...