За последние 24 часа нас посетили 54028 программистов и 1675 роботов. Сейчас ищут 844 программиста ...

Запрос на выборку с LIKE по конкретным полям(id)

Тема в разделе "MySQL", создана пользователем desertFox, 20 окт 2013.

  1. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    Приветствую,
    написал запрос:
    Код (Text):
    1. $query = "SELECT id,title,discription,date
    2.                 FROM articles
    3.                 WHERE (rubric='1' OR rubric='2') AND title LIKE '%$s_text%'
    4.                 OR discription LIKE '%$s_text%' ORDER BY date DESC";
    LIKE проигнорил условие (rubric='1' OR rubric='2') и на выходе были все заметки

    написал так:
    Код (Text):
    1. $query = "SELECT id,title,discription,date
    2.                 FROM articles
    3.                 WHERE title LIKE '%$s_text%'
    4.                 OR discription LIKE '%$s_text%' AND (rubric='1' OR rubric='2') ORDER BY date DESC";
    вроде всё норм, на выходе заметки отфильтрованы по (rubric='1' OR rubric='2'),

    прошло немного времени(пару часиков) и после очередной проверки снова условие игнор и на выходе все заметки, сделал код как указан выше, самый первый, заметки отфильтрованы..

    Что я не правильно написал? Почему фильтровка с LIKE работает некорректно? Пробовал и по одному id фильтровать(rubric='1'), тоже самое, то работает то нет.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
     
  3. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    благодарю за подсказку, переделал, вроде пока норм. :
    Код (Text):
    1. $query = "SELECT id,title,discription,date
    2.     FROM articles
    3.     WHERE (title LIKE '%$s_text%'
    4.     OR discription LIKE '%$s_text%') AND rubric IN (1,2) ORDER BY date DESC";
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не забывай обратные кавычки вокруг полей
    Код (Text):
    1. SELECT `id`, `title`, `discription`, `date`
    2.     FROM `articles`
    3.     WHERE (`title` LIKE '%$s_text%'
    4.     OR `discription` LIKE '%$s_text%') AND `rubric` IN (1,2) ORDER BY `date` DESC
     
  5. desertFox

    desertFox Активный пользователь

    С нами с:
    19 окт 2013
    Сообщения:
    62
    Симпатии:
    0
    спасибо, а я про обратные кавычки и не знал)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда на всяк-всяк:
    `articles`.`id`
    `articles`.*

    так пишется когда с таблицами