sql >> Databasteknik >  >> RDS >> Mysql

Motsvarar explode() för att arbeta med strängar i MySQL

MYSQL har ingen explode() liknande funktion inbyggd. Men du kan enkelt lägga till liknande funktion till din DB och sedan använda den från php-frågor. Den funktionen kommer att se ut så här:

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, '');

Användning:

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

Exemplet ovan returnerar apple .Jag tror att det kommer att vara omöjligt att returnera array i MySQL så du måste ange vilken förekomst som ska returneras uttryckligen i pos . Låt mig veta om du lyckas använda den.



  1. Returnera alla rader från en specifik partition i SQL Server (T-SQL)

  2. Hur man kör och hanterar MySQL-säkerhetskopior för Oracle DBA

  3. SQL Server 2008 personsökningsmetoder?

  4. SSMS 2016-fel vid import av Azure SQL v12 bacpac:huvudnycklar utan lösenord stöds inte