Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल टेबल कॉलम पर विभाजन कैसे करें?

आप बस एक संग्रहित प्रक्रिया को लिख और कॉल कर सकते हैं

DELIMITER $$

DROP PROCEDURE IF EXISTS explode_table $$
CREATE PROCEDURE explode_table(bound VARCHAR(255))

  BEGIN

    DECLARE id INT DEFAULT 0;
    DECLARE value TEXT;
    DECLARE occurance INT DEFAULT 0;
    DECLARE i INT DEFAULT 0;
    DECLARE splitted_value INT;
    DECLARE done INT DEFAULT 0;
    DECLARE cur1 CURSOR FOR SELECT table1.id, table1.value
                                         FROM table1
                                         WHERE table1.value != '';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    DROP TEMPORARY TABLE IF EXISTS table2;
    CREATE TEMPORARY TABLE table2(
    `id` INT NOT NULL,
    `value` VARCHAR(255) NOT NULL
    ) ENGINE=Memory;

    OPEN cur1;
      read_loop: LOOP
        FETCH cur1 INTO id, value;
        IF done THEN
          LEAVE read_loop;
        END IF;

        SET occurance = (SELECT LENGTH(value)
                                 - LENGTH(REPLACE(value, bound, ''))
                                 +1);
        SET i=1;
        WHILE i <= occurance DO
          SET splitted_value =
          (SELECT REPLACE(SUBSTRING(SUBSTRING_INDEX(value, bound, i),
          LENGTH(SUBSTRING_INDEX(value, bound, i - 1)) + 1), ',', ''));

          INSERT INTO table2 VALUES (id, splitted_value);
          SET i = i + 1;

        END WHILE;
      END LOOP;

      SELECT * FROM table2;
    CLOSE cur1;
  END; $$
-------------------
CALL explode_table(',');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक सम्मिलित क्वेरी PHP द्वारा MySQL में दो अलग-अलग तालिका में डेटा सम्मिलित करना संभव है?

  2. MySQL में प्रत्येक 'समूह द्वारा' की 'अंतिम' पंक्ति लौटाना

  3. PHP और MySQL:mysqli_num_rows () पैरामीटर 1 को mysqli_result, बूलियन दिए जाने की अपेक्षा करता है

  4. दूरस्थ MySQL होस्ट से कनेक्ट करने का प्रयास कर रहा है (त्रुटि 2003)

  5. क्या MySQL विदेशी_की_चेक पूरे डेटाबेस को प्रभावित करता है?