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

Apakah ada sesuatu yang analog dengan metode split() di mySql?

Sayangnya, mysql tidak mengizinkan fungsi mengembalikan array atau tabel (yang saya tahu) jadi Anda harus melakukan ini dengan sedikit retas.

Berikut adalah contoh proc yang tersimpan:

DELIMITER $$

create function splitter_count (str varchar(200), delim char(1)) returns int
  return (length(replace(str, delim, concat(delim, ' ')))  - length(str)) $$

CREATE PROCEDURE tokenize (str varchar(200), delim char(1))
BEGIN
  DECLARE i INT DEFAULT 0;
  create table tokens(val varchar(50));
  WHILE i <= splitter_count(str, delim) DO
    insert into tokens(val) select(substring_index(SUBSTRING_INDEX(str, delim, i+1), delim, -1));
    SET i = i + 1;
  END WHILE;

END $$

DELIMITER ;

Ini akan menandai string Anda, dan memasukkan nilainya ke dalam tabel yang disebut "token", satu token per baris. Anda harus dapat memodifikasinya untuk melakukan sesuatu yang berguna dengan cukup mudah. Selain itu, Anda mungkin ingin menambah panjang input dari 200.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memasukkan nilai $variable atau $_POST ke dalam tabel mysql

  2. Contoh Pernyataan JDBC – Sisipkan Batch, Perbarui, Hapus

  3. Koneksi database PHP dan MYSQL dan pembuatan tabel hanya sekali

  4. Tidak dapat menemukan mysql.sock

  5. Bagaimana saya bisa memverifikasi kode toko di mysql dan memperbarui tabel jika hasilnya benar?