我有一个MySQL数据库,它有一个表,表中的项目ID被分配给一个类别和子类别,除以一个点(请参阅下面插入的链接)。如果可能的话,我需要将列category.subcategory分为两列:category和subcategory,如图所示。有可能吗?
基本上我想把这个转换成:
Item ID Category.Subcategory
2526 CategoryA.SubcategoryB
2527 CategoryC.SubcategoryD
其中,保留ID及其对应的类别和子类别
Item ID Category Subcategory
2526 CategoryA SubcategoryB
2527 CategoryC SubcategoryD
提前谢谢你!
最佳答案
使用以下查询:
select `Item ID`, substring_index(Category.Subcategory,'.',1) as Category,
substring_index(Category.Subcategory,'.',-1) as Subcategory
from YourTable;
它使用
SUBSTRING_INDEX()
函数,该函数在指定数量的分隔符出现之前返回给定字符串的子字符串。-1
返回最后分隔符(第一个分隔符)右侧的子字符串语法为:
SUBSTRING_INDEX(str, delim, count)