我有一个表,其中一列是varchar类型,包含值“1.2.1”、“1”、“0.2”等。
一般情况下,最多有3个数字由十进制(.)分隔
我需要创建3个整数类型的新列来保存这3个数字。
示例数据如下所示。
此外,数据也可以包含一些字符串值,但它固定为最后附加的一个字符串,用连字符(-)分隔。例如1.2.1-xyz。如果数据是这样的,字符串值应该转到第四列。
此案例数据如下所示:
这是我为达到这个要求而编写的查询。
请在小提琴下面找http://sqlfiddle.com/#!9月5日4月1日
有没有更好的办法?我是新的数据库方面,所以请建议一些优化的方法来实现这一点。
1条答案
按热度按时间8oomwypt1#
在mysql中,我们可以使用
Substring_Index()
函数以及用户定义的变量。变量帮助我们避免重复某些字符串操作。架构(mysql v5.7)
查询
结果
db fiddle视图