sql >> Databasteknik >  >> RDS >> Mysql

Hur man räknar objekt i kommaseparerad lista MySQL

Det finns ingen inbyggd funktion som räknar förekomster av delsträng i en sträng, men du kan beräkna skillnaden mellan den ursprungliga strängen och samma sträng utan kommatecken:

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

Den har redigerats flera gånger under nästan 8 år nu (wow!), så för tydlighetens skull:frågan ovan behöver inte en + 1 , eftersom OPs data har ett extra avslutande kommatecken.

Medan faktiskt, i vanliga fall för strängen som ser ut så här:foo,bar,baz det korrekta uttrycket skulle vara

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


  1. Använda JDeveloper med MySQL Database och Oracle Database på AWS RDS, del 3

  2. MySQL standarddatabas

  3. Hur man grupperar efter två kolumner i SQL

  4. Hur kan jag gå in i en SQL Server-lagrad proc från min C#-kod?