Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando como no MySQL para operações de pesquisa usando o padrão


Este tutorial faz parte da série Aprenda consultas SQL básicas usando MySQL. Neste tutorial, discutiremos consultas SQL para realizar operações de pesquisa nos dados da tabela no MySQL usando a cláusula WHERE com a condição LIKE.


Condição semelhante




O GOSTEI e NÃO GOSTEI condições podem ser usadas para executar operações de pesquisa nos dados da tabela usando o padrão especificado.


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

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


Explicação da consulta




O GOSTEI condição pode ser usada para pesquisar em uma coluna específica usando o padrão especificado. Podemos usar a condição LIKE com WHERE para realizar as operações de busca.



Temos que especificar pelo menos uma condição usando a cláusula WHERE para que as linhas se qualifiquem para exclusão, caso contrário a tabela inteira será apagada. Todas as linhas da tabela são excluídas sem a condição.



Podemos usar os curingas mencionados abaixo com a condição LIKE para refinar os resultados da pesquisa.



Porcentagem (%) - Representa zero, um ou vários caracteres

Sublinhado (_) - Representa um único caractere



Também podemos usar a palavra-chave ESCAPE para incluir os curingas nos resultados da pesquisa.


Exemplos




Esta seção fornece exemplos para realizar operações de pesquisa usando a condição LIKE com a cláusula WHERE. Use a consulta mencionada abaixo para criar a tabela de usuário com o id, nome, sobrenome e colunas ativas para armazenar os dados do usuário.


# 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`));



A consulta abaixo mencionada pode ser usada para inserir dados na tabela do usuário.


# 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 );



A consulta acima mencionada irá inserir 5 linhas na tabela com o id, primeiro nome, sobrenome e colunas ativas para representar 5 usuários diferentes.



Agora usaremos a condição LIKE com a cláusula WHERE para pesquisar nas colunas de nome ou sobrenome da tabela de usuário. Isso pode ser feito usando WHERE LIKE no MySQL como mostrado abaixo.


# 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
 


As consultas mencionadas acima realizam uma pesquisa exata usando WHERE LIKE e o padrão fornecido. A condição LIKE ignora o caso ao corresponder com os valores da coluna. Ele fornece o mesmo resultado com letras maiúsculas ou minúsculas.



Agora vamos usar o curinga para realizar a busca conforme mostrado abaixo.


# 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



A consulta abaixo explica o uso da palavra-chave ESCAPE com a condição 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



É assim que podemos usar a condição LIKE com a cláusula WHERE com e sem curinga para realizar operações de pesquisa usando o padrão especificado.