Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chia chuỗi mysql

Bạn có thể thực hiện việc này bằng quy trình được lưu trữ

DELIMITER $$

CREATE FUNCTION strSplit(x VARCHAR(65000), delim VARCHAR(12), pos INTEGER) 
RETURNS VARCHAR(65000)
BEGIN
  DECLARE output VARCHAR(65000);
  SET output = REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos)
                 , LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1)
                 , delim
                 , '');
  IF output = '' THEN SET output = null; END IF;
  RETURN output;
END $$


CREATE PROCEDURE BadTableToGoodTable()
BEGIN
  DECLARE i INTEGER;

  SET i = 1;
  REPEAT
    INSERT INTO GoodTable (col1, col2)
      SELECT col1, strSplit(col2, ',', i) FROM BadTable
      WHERE strSplit(col2, ',', i) IS NOT NULL;
    SET i = i + 1;
    UNTIL ROW_COUNT() = 0
  END REPEAT;
END $$

DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hoạt động của hàm RIGHT () trong MySQL

  2. Tôi có thể tham số hóa tên bảng trong một câu lệnh đã soạn sẵn không?

  3. '0000-00-00 00:00:00' không thể được biểu thị dưới dạng java.sql. Lỗi dấu thời gian

  4. PyInstaller, tệp đặc tả, Lỗi nhập khẩu:Không có mô-đun nào có tên 'blah'

  5. Lỗi 1046 Không có cơ sở dữ liệu được chọn, làm thế nào để giải quyết?