У меня есть таблица shop в ней есть поля: name, shop_name, price, reting, где
name = имя товара. shop_name = имя магазина.price = ценаreting = рейтинг товаров.Содержания таблицы ____________________________________ name | shop_name | price | reting | Apple | Dicsi | 50 | 7 | milk | Narodnyi | 25 | 8 | lamp | Pupsi | 100 | 7 | map | Luk | 1000 | 8 | -----------------------------------+
Я хочу вывести на экран все записи у которых рейтинг равен 7 и 8, выполняя этот запрос:
SELECT *
FROM shop
WHERE reting = 7 AND reting = 8;
я получаю абсолютно нечего. А вот так все правильно :
SELECT *
FROM shop
WHERE reting = 7 OR reting = 8;
вывод :
----------------------+ name | reting | ----------------------+ Apple | 7 | Milk | 8 | ----------------------+
Почему это так, ведь тут сказано https://sql-language.ru/sql-and-or.html
оператор AND выводить все записи если оба условия будет истинным. А тут истинно, reting
в этом случае равно 7 и 8 в таблице видно.
Почему так.
Почему это так, ведь тут сказано https://sql-language.ru/sql-and-or.html оператор AND выводить все записи если оба условия будет истинным
Вы пытаетесь вывести продукты, у которых поле reting одновременно равно и 7, и 8. Но, очевидно, что каждому продукту можно присвоить лишь одно значение, и у одного продукта одновременно рейтинг не может иметь 2 значения. Для того и нужно использовать оператор OR.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей