背景:
項目需要從一張表查詢出來數(shù)據(jù)插入到另一張表,其中有一個字段是用逗號分隔的字符串,需要多行輸入到另一張表,那么這個如何實現(xiàn)呢
方案:
下面先粘貼下sql語句:
select SUBSTRING_INDEX(SUBSTRING_INDEX(v1.name, ',', b.help_topic_id + 1), ',', - 1) AS exhibit,SUBSTRING_INDEX(SUBSTRING_INDEX(v1.sku, ',', b.help_topic_id + 1), ',', - 1) AS skut
from test v1 JOIN mysql.help_topic AS b ON b.help_topic_id < (length(v1.name) - length(REPLACE(v1.name, ',', '')) + 1);
參數(shù)解釋
1.SUBSTRING_INDEX(str, delimiter, count)
? ? 參數(shù)解釋
? ? str:必填。STRING類型。待截取的字符串
? ? separator:必填。STRING類型的分隔符
? ? count:必填。INT類型。指定分隔符位置
2.mysql.help_topic本身是mysql的一張信息表,用來存儲各種注釋等幫助信息
同時它有一個特點,擁有一個自增為1的id屬性--help_topic_id?并且?擁有固定數(shù)量的數(shù)據(jù)
語句解釋:
1.查詢v1表的sku字段,按照逗號從左開始取b.help_topic_id + 1的值
SUBSTRING_INDEX(v1.sku, ',', b.help_topic_id + 1)
2.先從左開始截取對應(yīng)的值,在此基礎(chǔ)上從右往左在截取一位
SUBSTRING_INDEX(SUBSTRING_INDEX(v1.sku, ',', b.help_topic_id + 1), ',', - 1) AS skut
3.這個意思是關(guān)聯(lián)表help_topic,help_topic_id長度取到v1.name字段用逗號分隔的數(shù)量的最大值文章來源:http://www.zghlxwxcb.cn/news/detail-624236.html
mysql.help_topic AS b ON b.help_topic_id < (length(v1.name) - length(REPLACE(v1.name, ',', '')) + 1)文章來源地址http://www.zghlxwxcb.cn/news/detail-624236.html
到了這里,關(guān)于【問題解決】mysql 數(shù)據(jù)庫字符串分割之后多行輸出方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!