Задать вопрос
zvermafia
@zvermafia
WebDev

Что не так с SQL запросом?

Этот код должен дать один результат, но не дает:
select * from `catalog` where (status = 1) and (description LIKE '%ADVISE AND AUDIT%' OR title LIKE '%ADVISE AND AUDIT%' OR domain LIKE '%ADVISE AND AUDIT%')


Если его изменить так то дает, но не фильтрует по статусу:
select * from `catalog` where status = 1 and description LIKE '%ADVISE AND AUDIT%' OR title LIKE '%ADVISE AND AUDIT%' OR domain LIKE '%ADVISE AND AUDIT%'


Как изменить код чтобы работало LIKE %query% по description, title и domain, а также фильтрировал по status'у?

Schema:
title: varchar(255)
domain: varchar(255)
description: text
status: enum('-1', '0', '1')
  • Вопрос задан
  • 187 просмотров
Подписаться 2 Оценить 2 комментария
Решение пользователя Mokhirjon Naimov К ответам на вопрос (2)
zvermafia
@zvermafia Автор вопроса
WebDev
Оказывается надо было писать status = '1'
То есть:
select * from `catalog` where (status = '1') and (description LIKE '%ADVISE AND AUDIT%' OR title LIKE '%ADVISE AND AUDIT%' OR domain LIKE '%ADVISE AND AUDIT%') order by `follows` desc limit 10 offset 0


Поле status было enum(-1, 0, 1), только я делал это в Laravel Migrations:
$table->enum('status', array(-1, 0, 1));

А в PHPMyAdmin показывает тип поле (status) таким:
enum('-1', '0', '1')

Короче все решилось
Ответ написан
Комментировать