從select語句中,在一個字段中我想刪除最後的字符是字符,如果它的編號。 MySQL中有可用的字符串函數嗎?mysql刪除最後的字符是字符,如果它的編號
這兩個SQL我想
測試
作爲輸出
select 'test1';
select 'test';
從select語句中,在一個字段中我想刪除最後的字符是字符,如果它的編號。 MySQL中有可用的字符串函數嗎?mysql刪除最後的字符是字符,如果它的編號
這兩個SQL我想
測試
作爲輸出
select 'test1';
select 'test';
另一種方法是使用REGEXP
,
SET @val = 'test12';
SELECT CONCAT(LEFT(@val, CHAR_LENGTH(@val) - 1),
IF(RIGHT(@val, 1) REGEXP '[0-9]' = 0, RIGHT(@val, 1), ''))
這裏是一個指針:
使用兩個查詢之間的聯盟。
第一 - 無論是使用正則表達式,或者搶實地,其中另一SUBSTR的最後一個字符是一個數字的SUBSTR,
那麼工會的文本字段的最後一個字符的SUBSTR不是數字。
您可能想要在MySQL內部使用正則表達式。這個軟件包可能會幫助你https://launchpad.net/mysql-udf-regexp。但是,我不建議在MySQL語句中執行它,因爲它可能會很慢。在獲取編程語言中的值之後,最好做到這一點。
要刪除的最後一個字符,如果是數字,要做到這一點的一種方式,而無需使用正則表達式與LEFT
,RIGHT
和LENGTH
:
select if(right(yourfield,1) = 0 && right(yourfield,1) != '0',
yourfield,
left(yourfield, length(yourfield) - 1))
from yourtable;
全部更換後的數值,您可以使用REVERSE
:
select if(cast(reverse(yourfield) as signed) = 0 && right(yourfield,1) != '0',
yourfield,
left(yourfield, length(yourfield) - length((reverse(yourfield) + 0))))
from yourtable;
當c在MySQL中用整數/符號表示字段時,它會將所有數字字符都轉換爲第一個非數字字符 - 從而使REVERSE
正常工作。如果最後一個字符不是數字,則結果爲0.
使用上面的IF
檢查,如果最後一個字符不是數字,則會打印原始值,否則將打印除最後一個字符以外的所有字符。
是有,你有這樣的價值觀的任何可能性有多大? 'test12','test123'還是直到只有1個數字? –
我正在尋找只刪除最後一個字符,fo test123,我想test12 – sfgroups