Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dzielenie wartości mysql na nieznaną liczbę części

Jedną z opcji, którą polecam, jest użycie common_schema a konkretnie funkcje get_num_tokens() i split_token() , to pomoże.

Oto prosty przykład zastosowania, które możesz dostosować do swojego rozwiązania:

/* CODE FOR DEMONSTRATION PURPOSES */

/* Need to install common_schema - code.google.com/p/common-schema/ */ 

/* Procedure structure for procedure `explode1` */     

/*!50003 DROP PROCEDURE IF EXISTS  `explode1` */;

DELIMITER $$

CREATE PROCEDURE `explode1`(str varchar(65500), delim VARCHAR(255))
BEGIN
    DECLARE _iteration, _num_tokens INT UNSIGNED DEFAULT 0;
    DROP TEMPORARY TABLE IF EXISTS `temp_explode`;
    CREATE TEMPORARY TABLE `temp_explode` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `word` VARCHAR(200), PRIMARY KEY (`id`));
    SET _num_tokens := (SELECT `common_schema`.`get_num_tokens`(str, delim));
    WHILE _iteration < _num_tokens DO
        SET _iteration := _iteration + 1;
        INSERT INTO `temp_explode` (`word`) SELECT `common_schema`.`split_token`(str, delim, _iteration);
    END WHILE;
    SELECT `id`, `word` FROM `temp_explode`;
    DROP TEMPORARY TABLE IF EXISTS `temp_explode`;
END $$

DELIMITER ;

/* TEST */
CALL `explode1`('Lorem Ipsum is simply dummy text of the printing and typesetting', CHAR(32));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql pobiera rekordy lub dane według dziennych, tygodniowych, miesięcznych i rocznych

  2. GROUP BY dla ciągłych wierszy w SQL

  3. Jak utworzyć złożony klucz podstawowy w MySQL

  4. Wybrane kolumny nie mają kompatybilnego typu, nawet jeśli mają ten sam typ

  5. Załaduj domyślną wartość w pliku danych nie wstawia się do tabeli