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

Използване на Like в MySQL за операции за търсене с помощта на шаблон

Този урок е част от поредицата Научете основни SQL заявки с помощта на MySQL. В този урок ще обсъдим SQL заявките за извършване на операции за търсене върху данните от таблицата в MySQL, използвайки клаузата WHERE с условието LIKE.

Условие за харесване

ХАРЕСВАНЕТО и НЕ ХАРЕСВАМ условията могат да се използват за извършване на операции за търсене на данни от таблицата, като се използва посоченият шаблон.

# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';

# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';

Обяснение на заявката

ХАРЕСВАНЕТО условието може да се използва за търсене в конкретна колона с помощта на посочения шаблон. Можем да използваме условието LIKE с WHERE, за да извършим операциите за търсене.

Трябва да посочим поне едно условие, използвайки клаузата WHERE за редовете, за да отговарят на изискванията за изтриване, в противен случай цялата таблица ще бъде изтрита. Всички редове на таблицата се изтриват без условието.

Можем да използваме посочените по-долу заместващи знаци с условие LIKE, за да прецизираме резултатите от търсенето.

Процент (%) - Представлява нула, един или няколко знака

Подчертаване (_) - Представлява един знак

Можем също да използваме ключовата дума ESCAPE, за да включим заместващите знаци в резултатите от търсенето.

Примери

Този раздел предоставя примери за извършване на операции за търсене с помощта на условието LIKE с клауза WHERE. Използвайте посочената по-долу заявка, за да създадете потребителска таблица с идентификатор, собствено име, фамилия и активни колони за съхраняване на потребителски данни.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

Посочената по-долу заявка може да се използва за вмъкване на данни в потребителската таблица.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

Гореспоменатата заявка ще вмъкне 5 реда в таблицата с идентификатор, собствено име, фамилия и активни колони, за да представят 5 различни потребители.

Сега ще използваме условието LIKE с клаузата WHERE, за да търсим или в колоните с име или фамилия на потребителската таблица. Може да се направи с помощта на WHERE LIKE в MySQL, както е показано по-долу.

# LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` LIKE 'John';
SELECT * FROM `user` WHERE `first_name` LIKE 'john';

# Result
1 John Smith 1


# LIKE - Exact search - Multiple Conditions
SELECT * FROM `user` WHERE `first_name` LIKE 'Rick' AND `last_name` LIKE 'Jones';

# Result
2 Rick Jones 1


# NOT LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` NOT LIKE 'John';

# Result
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
 

Гореспоменатите заявки извършват точно търсене, използвайки WHERE LIKE и дадения шаблон. Условието LIKE игнорира регистра, докато съпоставя със стойностите на колоната. Той предоставя същия резултат с главни или малки букви.

Сега ще използваме заместващия знак, за да извършим търсенето, както е показано по-долу.

# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%ine';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE 'Cat%in%';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%in%';

# Result
3 Catherine Ponting 0
5 Tajwinder Singh 0


# LIKE - _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_ohn';

# Result
1 John Smith 1


# LIKE - % & _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_oh%';

# Result
1 John Smith 1

Посочената по-долу заявка обяснява използването на ключовата дума ESCAPE с условието LIKE.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 6, 'Jo%hn', 'Waugh', 1 ),
( 7, 'Rick', 'Jones', 1 );

# LIKE - ESCAPE - Exact search
SELECT * FROM `user` WHERE `first_name` LIKE '%#%hn' ESCAPE '#';

# Result
6 Jo%hn Waugh 1

Ето как можем да използваме условието LIKE с клаузата WHERE със и без заместващ знак, за да изпълняваме операции за търсене, използвайки посочения шаблон.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получавате имена на колони на таблицата в MySQL?

  2. Как да създам защитена mysql подготвена декларация в php?

  3. Как да напишете израз IF ELSE в MySQL заявка

  4. Изчислете възрастта въз основа на датата на раждане

  5. Проверка на множество колони за една стойност