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

Opdel værdi fra et felt til to

MySQL har desværre ikke en split string-funktion. Du kan dog oprette en brugerdefineret funktion til dette, såsom den, der er beskrevet i følgende artikel:

Med den funktion:

DELIMITER $$

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255) DETERMINISTIC
BEGIN 
    RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');
END$$

DELIMITER ;
 

du ville være i stand til at bygge din forespørgsel som følger:

SELECT SPLIT_STR(membername, ' ', 1) as memberfirst,
       SPLIT_STR(membername, ' ', 2) as memberlast
FROM   users;
 

Hvis du foretrækker ikke at bruge en brugerdefineret funktion, og du ikke har noget imod, at forespørgslen skal være en smule mere detaljeret, kan du også gøre følgende:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 1), ' ', -1) as memberfirst, SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 2), ' ', -1) as memberlast FROM users;

  1. Sådan aktiverer du SSL/TLS til MySQL i Ubuntu

  2. Sådan bestemmes feltværdien, som ikke kan konverteres til (decimal, float,int) i SQL Server

  3. Hurtigste måde at importere stor CSV-fil til MySql ved hjælp af MySql CLI

  4. OBJECTPROPERTY() vs OBJECTPROPERTYEX() i SQL Server:Hvad er forskellen?