Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pisahkan nilai dari satu bidang menjadi dua

Sayangnya MySQL tidak memiliki fitur split string function. Namun Anda dapat membuat fungsi yang ditentukan pengguna untuk ini, seperti yang dijelaskan dalam artikel berikut:

Dengan fungsi itu:

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 ;

Anda dapat membuat kueri sebagai berikut:

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

Jika Anda memilih untuk tidak menggunakan fungsi yang ditentukan pengguna dan Anda tidak keberatan kueri menjadi sedikit lebih bertele-tele, Anda juga dapat melakukan hal berikut:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1055 - Ekspresi daftar SELECT tidak ada dalam klausa GROUP BY dan berisi kolom yang tidak diagregasi, ini tidak kompatibel dengan sql_mode=only_full_group_by

  2. MySQL ON DUPLICATE KEY UPDATE untuk memasukkan beberapa baris dalam satu permintaan

  3. Hapus baris sql di mana ID tidak memiliki kecocokan dari tabel lain

  4. Mengimpor csv ke mysql melalui baris perintah

  5. Mencoba mendapatkan properti non-objek di