За последние 24 часа нас посетили 20145 программистов и 1693 робота. Сейчас ищут 1854 программиста ...

Почему в sql выражении не работает знак != (неравенства(<>))?

Тема в разделе "MySQL", создана пользователем AlexsaiL, 17 авг 2017.

  1. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    пример:
    PHP:
    1. $sql = "SELECT * FROM `pictures` WHERE  `archive`  !=  '1' ";
    все равно выдает все id где в поле `archive` значение как 1, так и пустое
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    749
    Адрес:
    Татарстан
    Типы может не совпадают? Сравниваете как строку, а это число или еще чего...
    Какой тип поля то?
     
  3. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    text
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    749
    Адрес:
    Татарстан
    А выражение = '1' правильно работает?
    Может 1-цы разные?
     
  5. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    нашел в чем проблема, благодарю)
     
  6. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    А вот еще такой вопрос: к примеру у продуктов имеется поле `PRICE`, у кождого продукта разное значение (NULL) ( )(4500руб) (Архив), в лучшем случае конечно задать два вида значений, но в данной ситуации вынужден работать с тем что есть. Как правильно сформулировать выражении для поля `PRICE` чтобы он выводил все продукты у которых поле `PRICE` != "Архив", если у продукта поле `PRICE` = NULL, то его тоже вывести.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Расскажи всем, интересно же. Сюда люди из гугла приходят часто, авось кому поможешь с подобной проблемой.
     
  8. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    У меня поле `archive` имело значение 1 или null, я выводил все поля где archive` != 1 , но возвращало пустой результат, тогда исправил sql -выражение на `archive` IS NULL, результат вернул все строки, кроме строк где значение archive` = 1
     
    #8 AlexsaiL, 18 авг 2017
    Последнее редактирование: 18 авг 2017
  9. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Fell, подскажи пожалуйста, как с этим правильно поступить:
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    mysql поддерживает операторы OR и AND, в общем-то. Можно задавать несколько условий в рамках одного WHERE таким образом.
     
    AlexsaiL нравится это.
  11. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    пробовал использовать OR и АND, но не отрабатывает, видимо не так формулировал
    --- Добавлено ---
    переформулировал, отработало, Благодарю!
    PHP:
    1. ... AND (t1.PRICE_RUS != '{$priceNull}' OR t1.PRICE_RUS IS NULL) ....
     
    Fell-x27 нравится это.