2011-10-21 34 views
1

我有一個包含像下面數據的字段:評估字符串值在單個列(的MySQL)

124.97#54.03#5#16 

其數目,其由分離的「#」。我想總結這些數字,但還沒有得到結果。

首先我用這個查詢來用'+'符號替換'#'。

select replace(myfieldname,'#','+') from mytable 

我想如果有一個像PHP這樣的函數'eval',應該這樣做。

任何想法?提前致謝。

注意:如果您可以幫助我將單列分隔爲多列結果是確定的,但實際上效果更好。

回答

0

> 注意:如果您可以幫助我將單列分隔成多列,那麼結果確實很好。

嘗試此查詢 -

SELECT 
    SUBSTRING_INDEX(column1, '#', 1) v1, 
    SUBSTRING_INDEX(SUBSTRING_INDEX(column1, '#', 2), '#', -1) v2, 
    SUBSTRING_INDEX(SUBSTRING_INDEX(column1, '#', 3), '#', -1) v3 
    ... 
    ... 
    ... 
FROM table_name; 

另一個變化:

SET @values = '124.97#54.03#5#16'; 
SET @values = REPLACE(@values, '#', '+'); 
SET @select = CONCAT('SELECT ', @values); 

PREPARE stmt FROM @select; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
+0

感謝Devart ......解決了! – Putra