2013-04-03 81 views
0

從select語句中,在一個字段中我想刪除最後的字符是字符,如果它的編號。 MySQL中有可用的字符串函數嗎?mysql刪除最後的字符是字符,如果它的編號

這兩個SQL我想

測試

作爲輸出

select 'test1'; 
select 'test'; 
+1

是有,你有這樣的價值觀的任何可能性有多大? 'test12','test123'還是直到只有1個數字? –

+0

我正在尋找只刪除最後一個字符,fo test123,我想test12 – sfgroups

回答

0

這裏是一個指針:

使用兩個查詢之間的聯盟。

第一 - 無論是使用正則表達式,或者搶實地,其中另一SUBSTR的最後一個字符是一個數字的SUBSTR,

那麼工會的文本字段的最後一個字符的SUBSTR不是數字。

0

您可能想要在MySQL內部使用正則表達式。這個軟件包可能會幫助你https://launchpad.net/mysql-udf-regexp。但是,我不建議在MySQL語句中執行它,因爲它可能會很慢。在獲取編程語言中的值之後,最好做到這一點。

1

要刪除的最後一個字符,如果是數字,要做到這一點的一種方式,而無需使用正則表達式與LEFTRIGHTLENGTH

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; 

SQL Fiddle Demo

當c在MySQL中用整數/符號表示字段時,它會將所有數字字符都轉換爲第一個非數字字符 - 從而使REVERSE正常工作。如果最後一個字符不是數字,則結果爲0.

使用上面的IF檢查,如果最後一個字符不是數字,則會打印原始值,否則將打印除最後一個字符以外的所有字符。

相關問題