Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley David

[Resolvido] Expressão regular no Select

Recommended Posts

beleza, pessoal.

 

Estou com um pequeno problema que não estou conseguindo resolver.

 

Estou precisando fazer uma consulta SQL com expressão regular, segue o SELECT

 


SELECT id, produto FROM produtos WHERE produto REGEXP '[^a-zA-Z]carro[^a-zA-Z]'

 

Preciso que a busca me retorne qualquer produto que tenha a palavra 'carro', só que esta palavra não pode fazer parte de uma outra palavra. Exemplo: carro = carroceria

 

Sendo que a palavra 'carro' pode constar em qualquer parte da frase (começo, meio, fim)

 

Quem poder dar um Help, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite amigo,

 

Olha, achei dois links interessantes, um aqui no fórum mesmo. Veja se ajuda:

 

http://forum.imasters.com.br/topic/103874-expressoes-regulares-no-mysql/

 

E este (em inglês), contém os seguintes dizeres (destacado em negrito):

 

A more elaborate example selects all columns of the table reviews where the values in the column description contain the word excellent:

 

SELECT * FROM reviews WHERE description REGEXP '[[:<:]]excellent[[:>:]]'

 

MySQL allows the following regular expression metacharacters:

 

. match any character ? match zero or one

* match zero or more

+ match one or more

{n} match n times

{m,n} match m through n times

{n,} match n or more times

^ beginning of line

$ end of line

[[:<:]] match beginning of words

[[:>:]] match ending of words

[:class:] match a character class

i.e., [:alpha:] for letters

[:space:] for whitespace

[:punct:] for punctuation

[:upper:] for upper case letters

[abc] match one of enclosed chars

[^xyz] match any char not enclosed

| separates alternatives

Segue endereço: http://www.tech-recipes.com/rx/484/use-regular-expressions-in-mysql-select-statements/

 

Veja se ajuda, caso não seja suficiente vamos procurar mais e fazer uns testes :D

 

Abraço.

 

EDIT:

 

Documentação do MySQL, também em inglês, pode ser bem útil: http://dev.mysql.com/doc/refman/5.1/en/regexp.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

VALEU amigo, deu certo usando a opção

SELECT * FROM reviews WHERE description REGEXP '[[:<:]]excellent[[:>:]]'

podia ter pedido ajuda antes de perder algumas horas quebrando a cabeça.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso aí :D

 

Satisfação em ajudar, precisando estamos a disposição!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.