MySQL IN


ULASHISH

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!