我有一个包含以下数据的字段:
124.97#54.03#5#16
以“#”分隔的数字。我想总结这些数字,但还没有得到结果。
首先,我使用此查询将“#”替换为“+”符号。
select replace(myfieldname,'#','+') from mytable
我想如果PHP中有一个'eval'函数,就应该这样做。
有什么想法吗?提前谢谢。
注意:如果您可以帮我将结果中的单个列分隔为多个列,那就没关系了,实际上这样更好。
答案 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;