MySQL IN
MySQL IN operatori
IN operatori WHERE bandida ko‘rsatilgan ustun qiymati berilgan ro‘yxatdagi biror qiymatga mos kelishini tekshirish uchun ishlatiladi.
IN operatori bir nechta OR shartining qisqa shakli sifatida ishlaydi va so‘rovlarni qisqaroq hamda o‘qilishi osonroq qiladi.
IN Sintaksis
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);Demo ma’lumotlar bazasi
Quyida Northwind namunasidagi "Mijozlar" jadvalidan tanlov mavjud ma’lumotlar bazasi:
| Mijoz ID | Mijoz nomi | Kontakt nomi | Manzil | Shahar | Pochta kodi | Mamlakat |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Mariya Anders | Obere ko‘chasi. 57 | Berlin | 12209 | Germaniya |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Konstitutsiya 2222 | Meksika D.F. | 05021 | Meksika |
| 3 | Antonio Moreno Taqueria | Antonio Moreno | Mataderos 2312 | Meksika D.F. | 05023 | Meksika |
| 4 | Shox atrofida | Tomas Xardi | 120 Gannover kv. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Kristina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Shvetsiya |
IN operatoriga misol
Quyidagi SQL mamlakati "Germany", "France" yoki "UK" bo‘lgan barcha mijozlarni tanlash uchun IN operatoridan foydalanadi:
Misol
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
O‘zingiz sinab ko‘ring »
NOT IN operatori
NOT IN operatoridan foydalanib, siz ro‘yxatdagi qiymatlardan hech biri bo‘lmagan barcha yozuvlarni qaytarasiz.
Quyidagi SQL "Germaniya", "Fransiya" yoki "Buyuk Britaniya" da joylashgan EMAS barcha mijozlarni tanlaydi:
Misol
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
O‘zingiz sinab ko‘ring »
IN (tanlash)
IN operatoridan WHERE bandidagi quyi so‘rov bilan ham foydalanishingiz mumkin.
Quyi so‘rov yordamida siz quyi so‘rov natijasida mavjud bo‘lgan asosiy so‘rovdan barcha yozuvlarni qaytarishingiz mumkin.
Quyidagi SQL "Orders" jadvalida buyurtmasi ham bor barcha mijozlarni qaytaradi:
Misol
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
O‘zingiz sinab ko‘ring »
YO‘Q (tanlov)
Yuqoridagi misoldagi natija 89 ta yozuvni qaytardi, ya’ni 2 ta mijoz tartib bermagan.
Keling, bu to‘g‘riligini NOT IN operatori yordamida tekshiramiz.
Quyidagi SQL "Orders" jadvalida hech qanday buyurtmasi bo‘lmagan barcha mijozlarni qaytaradi:
Misol
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
