Mysql
 sql >> Database >  >> RDS >> Mysql

mySql:ottiene le righe in cui il numero di parole nella cella (stringa separata da virgole) ha lo stesso valore di una cella corrispondente

Considera:

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

Espressione char_length(type) - char_length(replace(type, ',', '')) ti dà il numero di virgole nella stringa. Aggiunta di 1 a quello ti dà il numero di parole nella stringa.

Demo su DB Fiddle :

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