Как сделать выбор SQL в том месте, где мандатарии присоединяются или где? - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно сделать этот выбор:

select * from posts where active = 1 //mandatory where url <> 'thisurl' //mandatory or where id1 = 1 or where id2 = 2

Это понятно? Кроме того, я использую Codeigniter active record, так что если кто-то может помочь я в переводе это, я буду благодарен.

Ответы [ 5 ]

0 голосов
/ 08 ноября 2018

вы можете использовать $ где, чтобы упростить, где запрос

$this->db->select('*');
$this->db->from('posts');
$where ="(
        active = 1       //mandatory
        where url <> 'thisurl' //mandatory
        or where id1 = 1 
        or where id2 = 2
        )";
$this->db->where($where);
$result = $this->db->get();
0 голосов
/ 08 ноября 2018

В конструкторе запросов Codeigniter жаргон:

$this->db->select('*');
$this->db->where('active', 1);
$this->db->where('url !=', 'thisurl');
$this->db->group_start();
     $this->db->or_where('id1', 1);
     $this->db->or_where('id2', 2);
$this->db->group_end();

$query = $this->db->get();
return $query->result();

Вышеприведенное всегда будет приводить в действие active = 1 и url <> thisurl, а также обеспечивать, чтобы по крайней мере id1 = 1 или id2 = 2

0 голосов
/ 07 ноября 2018

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

 select * from posts where active = 1       //mandatory
                     and url <> 'thisurl' //mandatory
                     and ( id1 =1 or id2 =2)
0 голосов
/ 07 ноября 2018

Не забывайте о скобках!

SELECT * from posts 
WHERE (active = 1 AND url <> 'thisurl') OR id1 = 1 OR id2 = 2
0 голосов
/ 07 ноября 2018

вы можете сделать это

SELECT* 
FROM posts 
WHERE active = 1       //
AND url <> 'thisurl' //mandatory
OR id1 = 1 
OR id2 = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...