IN оператору мамычалар болушу керек болгон маанилердин топтомун аныктайт:
1
|
WHERE выражение [ NOT ] IN (выражение) |
INден кийин кашаанын ичиндеги туюнтма маанилердин топтомун көрсөтөт. Бул топтомду, мисалы, башка суроо-талаптын негизинде динамикалык эсептөөгө болот, же ал туруктуу маанилер болушу мүмкүн.
Мисалы, өндүрүүчүсү Samsung, Xiaomi же Huawei болгон өнүмдөрдү тандап алалы:
1
2
|
SELECT * FROM Products WHERE Manufacturer IN ( 'Samsung' , 'HTC' , 'Huawei' ); |
NOT оператору , экинчи жагынан, мамычаларында белгилүү бир маанилери жок бардык саптарды тандоого мүмкүндүк берет:
1
2
|
SELECT * FROM Products WHERE Manufacturer NOT IN ( 'Samsung' , 'HTC' , 'Huawei' ); |
BETWEEN оператору туюнтма дал келүүгө тийиш болгон баштапкы жана аяктоо маанисин колдонуу менен бир катар маанилерди аныктайт:
1
|
WHERE выражение [ NOT ] BETWEEN начальное_значение AND конечное_значение |
Мисалы, баасы 20 000ден 50 000ге чейинки бардык өнүмдөрдү алалы (баштапкы жана акыркы маанилер диапазондо да камтылган):
1
2
|
SELECT * FROM Products WHERE Price BETWEEN 20000 AND 50000; |
Эгерде, тескерисинче, бул диапазонго кирбеген саптарды тандоо керек болсо, анда NOT оператору кошулат :
1
2
|
SELECT * FROM Products WHERE Price NOT BETWEEN 20000 AND 50000; |
Дагы татаал сөз айкаштарын колдонсо болот. Мисалы, биз товарды жалпы наркы боюнча алабыз (баасы * саны):
1
2
|
SELECT * FROM Products WHERE Price * ProductCount BETWEEN 90000 AND 150000; |
LIKE оператору туюнтма дал келүүгө тийиш болгон сап үлгүсүн кабыл алат.
1
|
WHERE выражение [ NOT ] LIKE шаблон_строки |
Үлгүнү аныктоо үчүн бир нече атайын ийилчээк белгилерди колдонсо болот:
% : каалаган сандагы символдор болушу мүмкүн болгон ар кандай ички сапка дал келет жана подсап бир символду камтыбашы мүмкүн
Мисалы, туюнтма WHERE ProductName LIKE 'Galaxy%'
"Galaxy Ace 2" же "Galaxy S7" сыяктуу маанилерге дал келет
_ : каалаган бир белгиге дал келет
Мисалы, туюнтма WHERE ProductName LIKE 'Galaxy S_'
"Galaxy S7" же "Galaxy S8" сыяктуу маанилерге дал келет.
Келгиле, LIKE операторун колдонолу:
1
2
|
SELECT * FROM Products WHERE ProductName LIKE 'iPhone%' ; |
REGEXP сизге мамычанын мааниси дал келиши керек болгон кадимки туюнтманы көрсөтүүгө мүмкүндүк берет. Бул жагынан алганда, REGEXP LIKE операторуна караганда алда канча татаал жана комплекстүү чыпкалоо ыкмасын билдирет. REGEXP окшош синтаксиске ээ:
1
|
WHERE выражение [ NOT ] REGEXP регулярное выражение |
Регулярдуу туюнтма төмөнкү өзгөчө белгилерди кабыл алат:
^ : саптын башталышын көрсөтөт
$ : саптын аягын көрсөтөт
. : каалаган бир белгиге дал келет
[белгилер] : кашаадагы каалаган бир символго дал келет
[start_character-end_character] : белгилердин диапазонундагы каалаган бир белгиге дал келет
| : эки сап үлгүсүн бөлүп турат жана маани ошол калыптардын бирине дал келиши керек
REGEXP мисалдары:
WHERE ProductName REGEXP 'Phone'
: сапта "Телефон" болушу керек, мисалы, iPhone X
, Nokia Phone N
,iPhone
WHERE ProductName REGEXP '^Phone'
: сап "Телефон" менен башталышы керек, мисалы Phone 34
,PhoneX
WHERE ProductName REGEXP 'Phone$'
: сап "Телефон" менен бүтүшү керек, мисалы iPhone
,Nokia Phone
WHERE ProductName REGEXP 'iPhone [78]';
: сапта же iPhone 7
болбосо болушу керекiPhone 8
WHERE ProductName REGEXP 'iPhone [6-8]';
: сапта же iPhone 6
, же iPhone 7
, же болушу керекiPhone 8
Мисалы, аттары "Телефон" же "Галактика" камтылган өнүмдөрдү табалы:
1
2
|
SELECT * FROM Products WHERE ProductName REGEXP 'Phone|Galaxy' ; |
IS NULL оператору тилкелери NULL болгон бардык саптарды тандоого мүмкүндүк берет:
1
2
|
SELECT * FROM Products WHERE ProductCount IS NULL ; |
NOT операторун кошуу менен , сиз тескерисинче мамычаларында NULL маанилери жок саптарды тандай аласыз:
1
2
|
SELECT * FROM Products WHERE ProductCount IS NOT NULL ; |