Ir para conteúdo

POWERED BY:

Arquivado

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

Igor Micadei

Contagem com Expressão Regular

Recommended Posts

Boa tarde...

Eu tenho uma tabela de cadastro de alunos com idAluno e nome por exemplo

 

supondo que eu tenha dois nomes cadastrados:

Ana Maria da Silva

Maria Silva Guimarães

 

é possível eu contar quantas vezes uma determinada palavra aparece na mesma linha, por exemplo:

[[:<:]](ana|maria|silva)[[:>:]]

e ele me retornar:

Ana Maria da Silva = 3

Maria Silva Guimarães = 2

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como, o operador REGEXP retorna TRUE caso a expressão for casada, com isso em mente, já se pode concluir que essa soma seria em base das linhas que casaram e que não casaram, e não das palavras !

 

SELECT 
`alunos`.`nome` ,
SUM( 
	CASE
		WHEN `alunos`.`nome` 
			REGEXP '[[:<:]](ana|maria|silva)[[:>:]]'
		THEN 
			1
		ELSE 
			0
		END
) AS `soma`
FROM
`alunos` 
GROUP BY 
`alunos`.`nome`

 

Vai voltar:

mysql> select * from alunos ;
+-----------------------+
| nome                  |
+-----------------------+
| Ana Maria da Silva    |
| Maria Silva Guimarães |
+-----------------------+
2 rows in set (0.00 sec)

mysql> SELECT
   ->  `alunos`.`nome` ,
   ->  SUM(
   ->          CASE
   ->                  WHEN `alunos`.`nome`
   ->                          REGEXP '[[:<:]](ana|maria|silva)[[:>:]]'
   ->                  THEN
   ->                          1
   ->                  ELSE
   ->                          0
   ->                  END
   ->  ) AS `soma`
   -> FROM
   ->  `alunos`
   -> GROUP BY
   ->  `alunos`.`nome`;

+-----------------------+------+
| nome                  | soma |
+-----------------------+------+
| Ana Maria da Silva    |    1 |
| Maria Silva Guimarães |    1 |
+-----------------------+------+
2 rows in set (0.00 sec)

 

Ou seja, 'soma' significa que casou .. e não a soma das palavras casadas.

 

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Intão... era esse mesmo o meu problema, eu queria saber se tem como fazer essa contagem, mesmo que não seja com expressões regulares, eu precisava contar determinadas palavras dentro de uma célula.

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.