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

Svarende til explode() for at arbejde med strenge i MySQL

MYSQL har ingen explode() lignende funktion indbygget. Men du kan nemt tilføje lignende funktion til din DB og derefter bruge den fra php-forespørgsler. Den funktion vil se sådan ud:

CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
       CHAR_LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
       delim, '');

Brug:

SELECT SPLIT_STRING('apple, pear, melon', ',', 1)

Eksemplet ovenfor vil returnere apple .Jeg tror, ​​at det vil være umuligt at returnere array i MySQL, så du skal angive, hvilken forekomst der skal returneres eksplicit i pos . Fortæl mig, hvis det lykkes dig at bruge det.



  1. Forenkle indlejret store og små bogstaver, når sætning

  2. Indsamlingsmetode:UDVID Procedure i Oracle-databasen

  3. Indsætter data for at optage i sqlite

  4. Automatisk dataindsamling af databaseskemaændringer i MS SQL Server