sql >> Databáze >  >> RDS >> Mysql

Ekvivalent explode() pro práci s řetězci v MySQL

MYSQL nemá žádné explode() jako funkce vestavěná. Ale můžete snadno přidat podobnou funkci do vaší DB a pak ji použít z php dotazů. Tato funkce bude vypadat takto:

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

Použití:

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

Výše uvedený příklad vrátí apple .Myslím, že v MySQL nebude možné vrátit pole, takže musíte specifikovat, který výskyt se má vrátit, explicitně v pos . Dejte mi vědět, jestli se vám to podaří.



  1. Je v tsql vložka s příkazem Select bezpečná z hlediska souběžnosti?

  2. MariaDB JSON_VALID() Vysvětleno

  3. Importujte data do databáze MySQL

  4. SQL Výběr ze dvou tabulek s vnitřním spojením a limitem