Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entspricht explode(), um mit Strings in MySQL zu arbeiten

MYSQL hat kein explode() ähnliche Funktion eingebaut. Aber Sie können Ihrer DB einfach eine ähnliche Funktion hinzufügen und sie dann aus PHP-Abfragen verwenden. Diese Funktion sieht folgendermaßen aus:

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

Verwendung:

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

Das obige Beispiel gibt apple zurück .Ich denke, dass es unmöglich sein wird, ein Array in MySQL zurückzugeben, also müssen Sie angeben, welches Vorkommen explizit in pos zurückgegeben werden soll . Lassen Sie mich wissen, ob Sie damit Erfolg haben.