sql >> Database >  >> RDS >> Mysql

Equivalent van explode() om te werken met strings in MySQL

MYSQL heeft geen explode() like-functie ingebouwd. Maar u kunt eenvoudig een vergelijkbare functie aan uw DB toevoegen en deze vervolgens gebruiken vanuit php-query's. Die functie ziet er als volgt uit:

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

Gebruik:

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

Het bovenstaande voorbeeld retourneert apple .Ik denk dat het onmogelijk zal zijn om array in MySQL te retourneren, dus je moet specificeren welk exemplaar expliciet moet worden geretourneerd in pos . Laat het me weten als het je lukt om het te gebruiken.



  1. Sql Server Service Broker-gespreksgroepen

  2. Gegevensopslag:REST versus POSIX voor archieven en HSM

  3. Query uitvoeren op PostgreSQL met Npgsql en Entity Framework met unaccent

  4. FOUT:er is geen unieke beperking die overeenkomt met de gegeven sleutels voor de tabelbalk waarnaar wordt verwezen