MySql

mysql 竖线分割字段转换列数据列数缺少问题

2023-01-06  本文已影响0人  Rinaloving

竖线分割用的是 mysql.help_topic 表,最大上限是 637 条。这个不满足项目需求

1. 问题

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a.sBook,'|',b.help_topic_id+1),'|',-1) AS sBook FROM `TbBookList`  a JOIN mysql.help_topic b ON b.help_topic_id < (LENGTH(a.sBook) - LENGTH(REPLACE(a.sBook,'|',''))+1) AND a.pkCode = '001I' ORDER BY a.sBook

语句分割.png

2. 原因

3. 解决

DELIMITER //
CREATE PROCEDURE insert_data()  
BEGIN                    
DECLARE i INT DEFAULT 0; 
WHILE i<100000              
DO            
INSERT INTO `help_topic` (NAME) VALUES ('forbidden_delete');  
SET i=i+1;         
END WHILE ;      
COMMIT;        
END //
DELIMITER;    
存储过程.png
 CALL insert_data();  
调用存储过程.png 结果.png
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a.sBook,'|',b.help_topic_id+1),'|',-1) AS sBook FROM `TbBookList`  a JOIN help_topic b ON b.help_topic_id < (LENGTH(a.sBook) - LENGTH(REPLACE(a.sBook,'|',''))+1) AND a.pkCode = '001I' ORDER BY a.sBook

4. 问题分析

DELIMITER //
CREATE PROCEDURE insert_data()  
BEGIN                    
DECLARE i INT DEFAULT 0; 
WHILE i<10000              
DO            
INSERT INTO `help_topic` (help_topic_id,NAME) VALUES (i,'forbidden');  
SET i=i+1;         
END WHILE ;      
COMMIT;        
END //
DELIMITER;  
DELETE FROM help_topic;
TRUNCATE  help_topic ;
上一篇下一篇

猜你喜欢

热点阅读