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

Ulangi pemicu dengan nilai yang dipisahkan koma mysql

Pertama tambahkan prosedur ini ke database Anda

http://forge.mysql.com/tools/tool.php?id =4 (edit 09-09-2020, tautan sekarang mati tetapi mesin wayback menemukan sumbernya)

DELIMITER //
 
DROP PROCEDURE IF EXISTS split_string //
CREATE PROCEDURE split_string (
    IN input TEXT
    , IN `delimiter` VARCHAR(10) 
) 
SQL SECURITY INVOKER
COMMENT 
'Splits a supplied string using using the given delimiter, 
placing values in a temporary table'
BEGIN
    DECLARE cur_position INT DEFAULT 1 ;
    DECLARE remainder TEXT;
    DECLARE cur_string VARCHAR(1000);
    DECLARE delimiter_length TINYINT UNSIGNED;
 
    DROP TEMPORARY TABLE IF EXISTS SplitValues;
    CREATE TEMPORARY TABLE SplitValues (
        value VARCHAR(1000) NOT NULL PRIMARY KEY
    ) ENGINE=MyISAM;
 
    SET remainder = input;
    SET delimiter_length = CHAR_LENGTH(delimiter);
 
    WHILE CHAR_LENGTH(remainder) > 0 AND cur_position > 0 DO
        SET cur_position = INSTR(remainder, `delimiter`);
        IF cur_position = 0 THEN
            SET cur_string = remainder;
        ELSE
            SET cur_string = LEFT(remainder, cur_position - 1);
        END IF;
        IF TRIM(cur_string) != '' THEN
            INSERT INTO SplitValues VALUES (cur_string);
        END IF;
        SET remainder = SUBSTRING(remainder, cur_position + delimiter_length);
    END WHILE;
 
END //

Ini akan membagi string apa pun menjadi baris dalam tabel sementara.

Kirim kolom dari Tabel1 ke dalam prosedur itu dan gunakan tabel sementara yang dihasilkan untuk memasukkan nilai ke dalam Tabel3




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kegagalan pencarian teks lengkap mysql

  2. Apakah SQLite cocok untuk digunakan di situs web produksi?

  3. 'Fungsi VALUES' MySQL tidak digunakan lagi

  4. Tampilkan menu pohon dari induk yang dipilih

  5. Pemotongan data:Data terlalu panjang untuk 'logo' kolom di baris 1