Как составить запрос SELECT, в котором WHERE не равно И хотя бы одно из нескольких условий LIKE в CodeIgniter [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как составить запрос SELECT, в котором WHERE не равно И хотя бы одно из нескольких условий LIKE в CodeIgniter [дубликат]

Сообщение Anonymous »

У меня возникла проблема с этим конкретным MySQL-запросом CodeIgniter.
Я пытаюсь выполнить поиск в строках базы данных, где любое из трех полей/столбцов содержит ту же фразу, что и строка поиска, но «статус» не должен быть помечен как «удален».
Сначала я попробовал:

Код: Выделить всё

$this->db->where('status !=', 'deleted');
$this->db->like('meta_title', $string);
$this->db->or_like('name', $string);
$this->db->or_like('text_full', $string);
Но он просто полностью игнорировал поле Meta_title, он вообще не сравнивал и не изучал «meta_title». Затем я попробовал следующее, основываясь на чужом вопросе об обмене стеком, и это устранило эту проблему, но теперь игнорируется:

Код: Выделить всё

WHERE `status` != 'deleted'
Мой код

Код: Выделить всё

$rows = $this->db->query("SELECT * FROM `categories` WHERE `name` LIKE '%$string%' OR `meta_title` LIKE '%$string%' OR `slug` LIKE '%$string%' OR `text_full` LIKE '%$string%' AND `status` != 'deleted' ")->result_array();

var_dump($rows);
echo $this->db->last_query(); die();
Это возвращает все строки, даже строки, помеченные как удаленные.
Я также пробовал без обратных галочек и тоже пробовал

Код: Выделить всё

`status` NOT LIKE 'deleted'
Нравится

Код: Выделить всё

$rows = $this->db->query("SELECT * FROM `categories` WHERE `name` LIKE '%$string%' OR `meta_title` LIKE '%$string%' OR `slug` LIKE '%$string%' OR `text_full` LIKE '%$string%' AND `status` NOT LIKE 'deleted' ")->result_array();
Результат

Код: Выделить всё

echo $this->db->last_query(); die();
это:

Код: Выделить всё

SELECT * FROM `categories` WHERE `name` LIKE '%buyer%' OR `meta_title` LIKE '%buyer%' OR `slug` LIKE '%buyer%' OR `text_full` LIKE '%buyer%' AND `status` != 'deleted'
Я также пробовал поместить статус WHERE != 'deleted' в начале запроса
Я не очень разбираюсь в веб-разработке, но немного поигрался с этой проблемой. К сожалению, я дошел до того, что мне нужна помощь, чтобы понять, что я делаю неправильно.

Подробнее здесь: https://stackoverflow.com/questions/289 ... f-multiple
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»