2017-04-03 71 views
0

假設我有一個返回值的設定表,MYSQL子帶分隔符

+--------------------------+ 
|   MyColumn   | 
+--------------------------+ 
| some string 929190. here | 
| basic 092019. test  | 
| lorem i 092988.   | 
| 029109magic. lorem ipsum | 
+--------------------------+ 

什麼,我需要做的是從以下規則 1)表中選擇,如果數量在前面有空間以「。」結尾。獲取號碼並刪除剩餘的值 2)獲取「。」後面的文本。並將其置於新列

+--------------------------+-------------+ 
|   MyColumn   | string | 
+--------------------------+-------------+ 
| 929190     | here  | 
| 092019     | test  | 
| 092988     |    | 
| 029109magic    | lorem ipsum | 
+--------------------------+-------------+ 

我設法做了一個,但它只對一個特定的情況有好處。

select (CASE 
    WHEN MyColumn REGEXP '([0-9]{7}.$)' THEN SUBSTR(MyColumn, 8, 6) 
    ) from TableTest 

任何其他解決方法或快捷方式?我可能最終宣佈所有可能的情況?

+0

好吧,它爲我工作,沒有逃脫點。感謝您的反饋。 – Led

回答

1

項目2:

UPDATE tbl 
    SET string = SUBSTRING_INDEX(mycol, '.', -1), 
     mycol = SUBSTRING_INDEX(mycol, '.', 1) ; 

項目1不能在MySQL來完成,但是可能可以做到與MariaDB的和REGEXP_REPLACEREGEXP_SUBSTR