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

Sådan tælles elementer i kommasepareret liste MySQL

Der er ingen indbygget funktion, der tæller forekomster af understreng i en streng, men du kan beregne forskellen mellem den originale streng og den samme streng uden kommaer:

LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))

Den blev redigeret flere gange i løbet af næsten 8 år nu (wow!), så for klarhedens skyld:forespørgslen ovenfor behøver ikke en + 1 , fordi OPs data har et ekstra efterstillede komma.

Mens det faktisk generelt er tilfældet for strengen, der ser sådan ud:foo,bar,baz det korrekte udtryk ville være

LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1


  1. Er der en officiel anbefaling fra Oracle om brugen af ​​eksplicitte ANSI JOINs vs implicitte joinforbindelser?

  2. 12.2 RAC/GI Nye funktioner

  3. MySQL InnoDB fremmednøgle mellem forskellige databaser

  4. Kompleks fremmednøglebegrænsning i SQLAlchemy