我想从我的桌子中选择产品,其中Akcie 1和Stav也是1.但它搜索查询,所以我更喜欢。它不起作用为什么?这是查询
$q = $this->db->where('Akcia', 1)
->like('Titul', $vyraz)
->or_like('PodTitul', $vyraz)
->or_like('Autor1', $vyraz)
->or_like('Autor2', $vyraz)
->or_like('Autor3', $vyraz)
->or_like('Autor4', $vyraz)
->or_like('Prekladatel', $vyraz)
->or_like('Rozmer', $vyraz)
->or_like('Vydavatelstvo', $vyraz)
->or_like('ISBN', $vyraz)
->or_like('EAN', $vyraz)
->or_like('Popis', $vyraz)
->or_like('KratkyPopis', $vyraz)
->or_like('RokVydania', $vyraz)
->where('stav', 1)
->order_by('id', 'desc')
->limit($limit)
->offset($offset)
->get('knihy');
return $q->result();
此查询也选择了Akcia为0的pruduts为什么?
答案 0 :(得分:1)
如果我是正确的,代码将在SQL上产生这个条件:
WHERE Akcia = 1 AND Titul LIKE 'param' OR PodTitul LIKE 'param' etc.
因此,如果任何“or_like”参数受到攻击,则会自动忽略您对Akcia的条件,系统仍会显示所有记录是否有1或0值
你需要的是包括这样的括号:
WHERE Akcia = 1 AND (Titul LIKE 'param' OR PodTitul LIKE 'param' etc.)
我认为这就是您所需要的,请参阅此链接: