很簡單 我有串那樣的列: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