За последние 24 часа нас посетили 9477 программистов и 684 робота. Сейчас ищет 291 программист ...

Помогите с запросом

Тема в разделе "MySQL", создана пользователем yakyn, 6 янв 2019.

  1. yakyn

    yakyn Новичок

    С нами с:
    6 янв 2019
    Сообщения:
    2
    Симпатии:
    0
    Добрый день, форумчане. Подскажите пожалуйста, уже всю готову сломал. Достался сайт, перделаный DLE. Есть запрос к базе с выборкой постов).

    Код (Text):
    1.  
    2. $IDcategory='46';
    3.                $sql_select = "SELECT id, title, category, alt_name, allow_rate, rating, vote_num, flag, folder, weight, height FROM " . PREFIX . "_post WHERE {$where_not_category} {$stop_list}approve {$zapros}AND allow_main AND category<".$IDcategory." or category>".$IDcategory." " . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
    4.                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_not_category} {$stop_list}approve {$zapros}AND allow_main" . $where_date;
    Есть категория с ID 46 - она не должна выбираться.
    Но появилась задача еще и убрать категорию с ID 3.
    Объясните пожалуйста, что творится вот здесь ( category<".$IDcategory." or category>".$IDcategory." )
    И как туда добать еще одну категорию.
    Спасибо.
     
  2. Sail

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

    С нами с:
    1 ноя 2016
    Сообщения:
    940
    Симпатии:
    203
    @yakyn, поверим, что в готовом запросе в условии "and (категория меньше заданной или категория больше заданной)" проставлены скобки для изолирования операции or.
    Для сравнения с несколькими значениями можно использовать конструкцию: not in (value1, value2). А для сравнения с одним значением можно было использовать оператор "не равно" (<> или !=).
     
    yakyn нравится это.
  3. yakyn

    yakyn Новичок

    С нами с:
    6 янв 2019
    Сообщения:
    2
    Симпатии:
    0
    Спасибо огромное. Меня смутили < > . Зачем было для выбора одной категории ставить (меньше или больше)? Когда можно было просто проверить на != . Потом уже разобрался. Еще раз спасибо.