sql >> Database >  >> RDS >> Mysql

Kan Mysql een kolom splitsen?

Het lijkt te werken:

substring_index ( substring_index ( context,',',1 ), ',', -1) 
substring_index ( substring_index ( context,',',2 ), ',', -1)
substring_index ( substring_index ( context,',',3 ), ',', -1)
substring_index ( substring_index ( context,',',4 ), ',', -1)

het betekent 1e waarde, 2e, 3e, enz.

Uitleg:

De innerlijke substring_index geeft de eerste n waarden terug die door komma's zijn gescheiden. Dus als je originele string "34,7,23,89" is, substring_index( context,',', 3) geeft "34,7,23" terug.
De buitenste substring_index neemt de waarde die wordt geretourneerd door de binnenste substring_index en de -1 stelt u in staat om de laatste waarde te nemen. Je krijgt dus "23" van de "34,7,23".
In plaats van -1 als u -2 . specificeert , krijg je "7,23", omdat de laatste twee waarden nodig waren.

Voorbeeld:

select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;

Hier, prices is de naam van een kolom in MyTable .



  1. Converteer 'datetime2' naar 'datetimeoffset' in SQL Server (T-SQL-voorbeelden)

  2. Een beperking van een externe sleutel inschakelen in SQL Server (T-SQL-voorbeelden)

  3. MySQL INSERT IF (aangepaste if-statements)

  4. Hoe het verschil in jaren van twee verschillende datums te krijgen?