Нека проучим как работи тази функция и как можем да я използваме.
SQL IN оператор
Следващият фрагмент показва синтаксиса за оператора IN.
търсена_стойност [ НЕ ] IN стойност_набор
стойност_набор:
{
( изразяване [ , ... ] )
| ( подзаявка )
| ОСВЕН АКО ( израз_масив )
}
Функцията приема следните параметри:
- search_value – това дефинира израз, който се сравнява с дадения набор от стойности.
- value_set – наборът от стойности, от които се сравнява search_value.
- подзаявка – описва подзаявка, която връща една колона. Ако не бъдат върнати стойности, наборът от стойности е празен.
- UNNEST(масив) – връща колона със стойности от дадена стойност на масива.
След това функцията връща булева стойност. Връща TRUE, ако в дадения набор съществува равна стойност, и FALSE, ако не е така.
Примери
Следващият пример показва как да използвате оператора IN с данни от колони. Да предположим, че имаме таблица с примерни данни, както е показано:
Можем да използваме оператора IN, за да изберем записите, ако държавата е MySQL или PostgreSQL.
ИЗБЕРЕТЕ
*
ОТ
БАЗИ ДАННИ
КЪДЕТО
ИМЕ НА СЪРВЪРА IN ( 'MySQL' , 'PostgreSQL' ) ;
Горната заявка трябва да показва съответстващите редове, както е показано:
Използвайки оператора IN, можем също да проверим дали съществува стойност в дадена колона. По-долу е показан пример:
ИЗБЕРЕТЕ*
ОТ
БАЗИ ДАННИ д
КЪДЕТО
'MySQL' IN ( ИМЕ НА СЪРВЪРА ) ;
В този случай проверяваме дали стойността „MySQL“ съществува в колоната server_name. Резултатът е както е показано:
Добре е да имате предвид, че ако сте предоставили дублирани стойности с оператор IN. SQL ще отхвърли идентичните стойности и ще използва една от тях.
Заключение
В тази кратка публикация проучихме използването на оператора IN в стандартен/ANSI SQL. Операторът IN ви позволява да проверите дали дадена стойност съществува в набор от стойности.
Благодаря за четенето!!