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

mySql:obtém as linhas onde o número de palavras na célula (sequência de caracteres separada por vírgula) tem o mesmo valor de uma célula correspondente


Considerar:
select *
from tab1
where char_length(type) - char_length(replace(type, ',', '')) + 1 = qta

Expressão char_length(type) - char_length(replace(type, ',', '')) fornece o número de vírgulas na string. Adicionando 1 para isso lhe dá o número de palavras na string.

Demonstração no DB Fiddle :
id | cod | type        | qta
-: | :-- | :---------- | --:
 1 | aaa | aaa,bbb,ccc |   3
 2 | aaa | ddd         |   1
 4 | aaa | ggg,hhh     |   2