在MySQL中,有時(shí)候需要從一個(gè)字符串中截取出特定的數(shù)字用于計(jì)算,下面介紹兩種方法。
第一種方法是使用MySQL內(nèi)置函數(shù)SUBSTRING_INDEX。該函數(shù)可以從一個(gè)字符串中截取出指定數(shù)量的子串,并在每個(gè)子串之間使用特定的分隔符。例如,我們有一個(gè)包含數(shù)字和字符的字符串'ST1234UJ', 需要截取數(shù)字部分'1234',則可以使用以下語(yǔ)句:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('ST1234UJ', 'ST', -1), 'UJ', 1);
首先,SUBSTRING_INDEX函數(shù)從字符串'ST1234UJ'中截取出最后一個(gè)包含'ST'的子串'1234UJ'。然后,再次使用SUBSTRING_INDEX函數(shù)從截取出的子串中截取出最后一個(gè)包含'UJ'的子串'1234'。
第二種方法是使用MySQL內(nèi)置函數(shù)REGEXP_REPLACE。該函數(shù)可以將一個(gè)字符串中的匹配正則表達(dá)式的部分替換為指定的字符。例如,我們有一個(gè)包含數(shù)字和字符的字符串'ST1234UJ',需要將非數(shù)字部分替換為空格,則可以使用以下語(yǔ)句:
SELECT REGEXP_REPLACE('ST1234UJ', '[^0-9]', ' ');
該語(yǔ)句中的正則表達(dá)式'[^0-9]'表示匹配除數(shù)字外的所有字符。使用REGEXP_REPLACE函數(shù)將匹配到的所有字符替換為空格。