sql >> Base de Datos >  >> RDS >> Mysql

mySql:obtiene las filas donde el número de palabras en la celda (cadena separada por comas) tiene el mismo valor que una celda coincidente

Considere:

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

Expresión char_length(type) - char_length(replace(type, ',', '')) le da el número de comas en la cadena. Agregando 1 a eso le da el número de palabras en la cadena.

Demostración en DB Fiddle :

id | cod | type        | qta
-: | :-- | :---------- | --:
 1 | aaa | aaa,bbb,ccc |   3
 2 | aaa | ddd         |   1
 4 | aaa | ggg,hhh     |   2