评估单个列中的字符串值(mysql)

时间:2011-10-21 09:14:22

标签: mysql

我有一个包含以下数据的字段:

124.97#54.03#5#16

以“#”分隔的数字。我想总结这些数字,但还没有得到结果。

首先,我使用此查询将“#”替换为“+”符号。

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

我想如果PHP中有一个'eval'函数,就应该这样做。

有什么想法吗?提前谢谢。

注意:如果您可以帮我将结果中的单个列分隔为多个列,那就没关系了,实际上这样更好。

1 个答案:

答案 0 :(得分: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;