Шта су МиСКЛ џокери?
Замењиви знакови МиСКЛ су знакови који помажу у претраживању података који одговарају сложеним критеријумима. Замењиви знакови се користе заједно са оператором упоређивања ЛИКЕ или оператором упоређивања НОТ ЛИКЕ.
Зашто користити ВилдЦардс?
Ако сте упознати са употребом СКЛ-а, можда мислите да можете претраживати било које сложене податке помоћу клаузуле СЕЛЕЦТ и ВХЕРЕ. Зашто онда користити џокер знакове?
Пре него што одговоримо на то питање, погледајмо пример. Претпоставимо да је одељење за маркетинг видеотеке Мифлик спровело маркетиншке промоције у граду Тексас и да би желело да добије неке повратне информације о броју чланова
који су регистровани из Тексаса, можете да користите следећу СЕЛЕЦТ изјаву заједно са клаузулом ВХЕРЕ да бисте добили жељене информације.
SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';
Као што видите из горњег упита, клаузула „ВХЕРЕ“ постаје сложена. Међутим, коришћење џокерских знакова поједностављује упит јер можемо користити нешто једноставно попут скрипте приказане доле.
SELECT * FROM members WHERE postal_address like '% TX';
Укратко, џокер знакови нам омогућавају да развијемо напредне претраживаче у наше апликације вођене подацима.
Врсте џокер знакова
% проценат
% процентуални знак се користи за одређивање узорка од нула (0) или више знакова . Има следећу основну синтаксу.
SELECT statements… WHERE fieldname LIKE 'xxx%';
ОВДЕ
- „СЕЛЕЦТ наредба ...“ је стандардна СКЛ наредба СЕЛЕЦТ.
- „ГДЕ“ је кључна реч која се користи за примену филтера.
- „ЛИКЕ“ је оператор упоређивања који се користи заједно са џокер знаковима
- „ккк“ је било који назначени почетни образац, као што је један знак или више, а „%“ се подудара са било којим бројем знакова који почињу од нуле (0).
Да бисмо у потпуности уважили горњу изјаву, погледајмо практични пример
Претпоставимо да желимо да сви филмови који имају реч „код“ добију као део наслова, користили бисмо проценат џокер знакова да бисмо извршили подударање обрасца на обе стране речи „код“. Испод је СКЛ израз који се може користити за постизање жељених резултата.
SELECT * FROM movies WHERE title LIKE '%code%';
Извршавање горње скрипте у МиСКЛ радном окружењу против мифликдб даје нам резултате приказане у наставку.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
7 | Davinci Code | NULL | NULL | 6 |
Приметите да се чак и ако се кључна реч за претрагу „код“ појави на почетку или на крају наслова, она се и даље враћа у наш скуп резултата. То је зато што наш код укључује било који број знакова на почетку, а затим се подудара са обрасцем „код“ иза којег следи било који број знакова на крају.
Хајде сада да модификујемо нашу горњу скрипту тако да укључује проценат џокер знакова само на почетку критеријума за претрагу.
SELECT * FROM movies WHERE title LIKE '%code';
Извршавање горње скрипте у МиСКЛ радном окружењу против мифликдб даје нам резултате приказане у наставку.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Приметите да је из базе података враћен само један запис. То је зато што се наш код подудара са било којим бројем знакова на почетку наслова филма и добија само записе који се завршавају шаблоном „код“.
Померимо сада проценат џокер знакова на крај наведеног обрасца који се подудара. Измењена скрипта је приказана у наставку.
SELECT * FROM movies WHERE title LIKE 'code%';Извршавање горње скрипте у МиСКЛ радном окружењу против мифликдб даје нам резултате приказане у наставку.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Приметите да је из базе података враћен само један запис. То је зато што се наш код подудара са свим насловима који почињу шаблоном „код“ иза којег слиједи било који број знакова.
_ подвлака џокер знак
Заменљиви доњи знак користи се за подударање са тачно једним знаком . Претпоставимо да желимо да претражимо све филмове који су објављени у годинама 200к где је к тачно један лик који може имати било какву вредност. Да бисмо то постигли, користили бисмо доњу подвлаку. У доњем сценарију изабрани су сви филмови објављени у години "200к"
SELECT * FROM movies WHERE year_released LIKE '200_';
Извршавање горње скрипте у МиСКЛ радном окружењу против мифликдб даје нам резултате приказане у наставку.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
9 | Honey mooners | Jhon Shultz | 2005 | 8 |
Приметите да су у наш скуп резултата враћени само филмови који имају 200 следова било којег лика у пољској години која је објављена. То је зато што се доњи знак подудара са узорком 200 праћеним било којим појединачним знаком
Не волим
НОТ логички оператор може се користити заједно са џокер знаковима за враћање редова који се не подударају са наведеним обрасцем.
Претпоставимо да желимо да добијемо филмове који нису пуштени 200к. Користили бисмо НЕ логички оператор заједно са доњим знаком да бисмо добили наше резултате. Испод је скрипта која то ради.
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
8 | Underworld-Awakeninh | Michahel Eal | 2012 | 6 |
Приметите да су у наш скуп резултата враћени само филмови који не почињу са 200 у години издавања. То је зато што смо у претраживању шаблона користили логички оператор НОТ.
Есцапе кеиворд.
Кључна реч ЕСЦАПЕ користи се за избегавање знакова који се подударају са узорцима, као што су проценат (%) и доња црта (_) ако чине део података.
Претпоставимо да желимо да проверимо низ „67%“ који можемо да користимо;
LIKE '67#%%' ESCAPE '#';
Ако желимо да претражимо филм „67% кривих“, за то можемо користити скрипту приказану доле.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Напомена двоструки " % %" у ЛИКЕ клаузуле, први у ред " % " се третира као део низа који се тражили. Други се користи за подударање са било којим бројем знакова који следе.
Исти упит ће радити и ако користимо нешто попут
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Резиме
- Лике & Вилдцардс моћни алати који помажу у претраживању података који се подударају са сложеним обрасцима.
- Постоји низ џокер знакова који између осталог укључују проценат, доњу црту и листу цхар (које МиСКЛ не подржава)
- Заменљиви проценат се користи за подударање са било којим бројем знакова почевши од нуле (0) и више.
- Заменљиви доњи знак користи се за подударање са тачно једним знаком.