Проблем:
Искате да намерите подниз, съответстващ на модел в низ.
Пример:
Нашата база данни има таблица с име клиент с данни в следните колони:id , first_name , last_name и city .
| id | first_name | фамилно_име | град |
|---|---|---|---|
| 1 | Алан | Уотсън | Мадрид |
| 2 | Лиза | Черно | Сингапур |
| 3 | Лора | Уилямс | Сиатъл |
| 4 | Милано | Тухла | Сеул |
Нека видим някои примери за съвпадение на шаблони в SQL.
Пример 1:
Нека покажем името, фамилията и града на всеки клиент, чието име на град започва с буквата „S“.
Решение:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%';
| фамилно_име | first_name | град |
|---|---|---|
| Лиза | Черно | S Ингапур |
| Милано | Тухла | S eoul |
| Лора | Уилямс | S ядем |
Използвахме заместващия знак %, който представлява нула или повече неизвестни знаци. Този заместващ знак може да се използва навсякъде в низа.
Пример 2:
Нека покажем името, фамилията и града на всеки клиент, чието име на град съдържа точно пет знака.
Решение:
SELECT last_name, first_name, city FROM customer WHERE city LIKE '_____';
Ето резултата:
| фамилно_име | first_name | град |
|---|---|---|
| Милано | Тухла | Сеул |
Подчертаването може да се използва за представяне на единичен неизвестен знак. По този начин, като използваме пет от тях подред, можем да представим всички низове с дължина от пет знака. В нашия пример единственият град, отговарящ на това описание, е Сеул.
Пример 3:
Нека покажем първото име, фамилията и града на всеки клиент, чийто град започва с буквата „S“ и има буквата „o“ като знак от трети до последен.
Решение:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%o__';
Ето резултата:
| фамилно_име | first_name | град |
|---|---|---|
| Лиза | Черно | S inapo повторно |
| Милано | Тухла | S до ул |
Заявката върна само два записа:Lisa Black от S inapo re и Milan Brick от S до ул. Тези градове отговарят на дадения модел. Тук комбинирахме и двата заместващи символа, за да генерираме по-специфичен модел:всички низове, започващи с главна буква „S“ и съдържащи произволен брой други знаци след това, стига символът от трети до последен да е малка буква „o“. '
Дискусия:
Ако искате да изберете записи, в които низ съответства на конкретен модел, можете да използвате LIKE клауза като условие в WHERE клауза. След WHERE , избройте името на колоната (напр. city ), последвано от LIKE клауза, указваща модела на низа (напр. 'S%o__' ) за търсене.
Както видяхме в примерите, можете да използвате два специални знака, известни като заместващи знаци за представяне на неизвестни знаци:
- Заместващият знак „%“ обозначава нула или повече знака.
- Заместващият знак „_“ обозначава всеки единичен знак.
Можете да комбинирате тези заместващи знаци, за да постигнете някои наистина мощни резултати. Можете също да верижите повече от един LIKE състояние. И накрая, можете да използвате NOT оператор за намиране на низове, които не съответстват на дадения модел.