很简单 我有串那样的列:MySQL的:如何从柱去除串
abc1
abc2
abc3
abc4
abc5
我需要从该列中删除“ABC”,并保持在右边只数,因此列将只有数,如:
1
2
3
4
5
我想过这样的不便,但它不工作
update table2
-> set col1 = case when 'abc1' then 1
-> else end;
我知道如何连接文本,我不知道如何撤消它...帮助请^^;
很简单 我有串那样的列:MySQL的:如何从柱去除串
abc1
abc2
abc3
abc4
abc5
我需要从该列中删除“ABC”,并保持在右边只数,因此列将只有数,如:
1
2
3
4
5
我想过这样的不便,但它不工作
update table2
-> set col1 = case when 'abc1' then 1
-> else end;
我知道如何连接文本,我不知道如何撤消它...帮助请^^;
@McArthey已经暗示它,但是这是很容易做到当“ abc“始终是”abc“(即长度不变)。
其中各种string functions是特别的一种:RIGHT()
。这使您可以从字符串中选择固定数量的字符。例如再加上LENGTH()
功能
SELECT RIGHT('abc3',1) -- Results in "3"
SELECT RIGHT('abc3',2) -- Results in "c3"
,可以断定这些数字是什么,过去的3个字符。即
SELECT RIGHT('abc3',LENGTH('abc3')-3) -- Results in "3"
很显然,我使用硬字符串('abc3'
),但这些很容易被列名替换。
这里需要注意的是,这些都是基于固定长度的字母前缀。在你的例子中,变量(改变)“abc”越多,越难从列中选取数值。
如果这些是单一的数字值,你可以使用
select right(column,1) ...
您也可以找到REGEXP文档有用的,如果它是更为复杂的。
如果您尝试修改列,您将不得不分别取值,然后将它们连接在一起。由于我不知道你要完成的是什么,所以很难给出准确的答案,但是你可以用SUBSTR做些事情来获取单独的值。
得到 'ABC':SUBSTR(列,1,3)
获取数字:SUBSTR(列4)
你的例子显示了所有长度相同的字符串。这是真的? – McArthey