Database
 sql >> база данни >  >> RDS >> Database

Как да използвате LIKE в SQL

Проблем:

Искате да намерите подниз, съответстващ на модел в низ.

Пример:

Нашата база данни има таблица с име клиент с данни в следните колони: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 оператор за намиране на низове, които не съответстват на дадения модел.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да моделираме за лесна поддръжка на база данни

  2. Синтетично генериране на данни

  3. Предимства и сигурност в услугата за релационна база данни на Amazon

  4. Използване на ODBC със Salesforce и Okta Single Sign On (SSO)

  5. Колко влияние може да има изборът на тип данни?