MySQL CRUD WHERE


Фільтрація даних. Оператор WHERE

Найчастіше необхідно використовувати не всі дані з БД, а тільки ті, які відповідають певній умові. Для фільтрації даних в команді SELECT застосовується оператор WHERE , після якого вказується умова:

WHERE умова

Якщо умова істинно, то рядок потрапляє в результуючу вибірку. Як можна використовувати операції порівняння, які порівнюють два вирази:

  • = Порівняння на рівність

  • ! = Порівняння на рівність

  • <> Порівняння на нерівність

  • < Менше ніж

  • > Більше ніж

  • <= Менше ніж або дорівнює

  • >= Більше ніж або дорівнює

Наприклад, виберемо всі товари, виробником яких є компанія Samsung:

SELECT * FROM Products
WHERE Manufacturer = 'Samsung';

Варто зазначити, що для MySQL не важливий регістр символів, і, наприклад, рядок "Samsung" буде еквівалентна рядку "SAMSUNG" або "sumSunG".

Інший приклад - знайдемо всі товари, кількість яких менше 3:

SELECT * FROM Products
WHERE ProductCount < 3;

Критерій фільтрації може представляти і більш складне складний вираз. Наприклад, знайдемо всі товари, у яких сукупна вартість більше 100 000:

SELECT * FROM Products
WHERE Price * ProductCount > 100000;

Логічні оператори

Логічні оператори дозволяють об'єднати кілька умов. В MySQL можна використовувати такі логічні оператори:

  • AND операція логічного і . Вона об'єднує два вирази:

вираз1 AND вираз2

Тільки якщо обидва цих вирази одночасно є істинними (true ), то і загальна умова оператора AND також було це слово. Тобто якщо перша і друга умова істинна.

  • OR операція логічного АБО . Вона також об'єднує два вирази:
вираз1 OR вираз2

Якщо хоча б один з цих виразів є істинним (true ), то загальне умова оператора OR також буде істинним (true ). Тобто якщо або перша або друга умова істинна (true ).

  • NOT операція логічного заперечення. Якщо вираз в цій операції помилковий, то загальне умова є істинна.
NOT вираз

Наприклад, виберемо усі товари, у яких виробник Samsung і одночасно ціна більше 50000:

SELECT * FROM Products
WHERE Manufacturer = 'Samsung' AND Price > 50000

Тепер змінимо оператор на OR . Тобто виберемо усі товари, у яких або виробник Samsung, або ціна більше 50000:

SELECT * FROM Products
WHERE Manufacturer = 'Samsung' OR Price > 50000

Застосування оператора NOT - виберемо усі товари, у яких виробник не Samsung:

SELECT * FROM Products
WHERE NOT Manufacturer = 'Samsung';

Пріорітет операцій

В одній умові при необхідності ми можемо об'єднувати кілька логічних операцій. Однак слід враховувати, що найбільш пріоритетною операцією, яка виконується в першу чергу, є NOT , менш пріоритетна - AND і операція з найменшим пріоритетом - OR . наприклад:

SELECT * FROM Products
WHERE Manufacturer ='Samsung' OR NOT Price > 30000 AND ProductCount > 2;

В даному випадку спочатку обчислюється вираз NOT Price > 30000 , тобто ціна повинна бути менше або дорівнює 30000 .

Потім обчислюється вираз NOT Price > 30000 AND ProductCount > 2 , тобто ціна повинна бути менше або дорівнює 30000 і одночасно кількість товарів повинно бути більше 2 .

В кінці обчислюється оператор OR - або ціна повинна бути менше або дорівнює 30000 і одночасно кількість товарів повинно бути більше 2 , або виробником повинен бути Samsung .

За допомогою дужок можна перевизначити пріорітет операцій:

SELECT * FROM Products
WHERE Manufacturer ='Samsung' OR NOT (Price > 30000 AND ProductCount > 2);

В даному випадку знаходимо товари, у яких або виробник Samsung , або одночасно ціна товару менше або дорівнює 30000 і кількість товарів менше 3 .


Наш партнер:
beta test mp3 playlist downloader