将两行中的字符串合并到新列中

时间:2013-08-07 19:50:02

标签: mysql

我有一个包含两行数据的数据库。我想组合前一行中的列和当前行中的一列来创建COMBINED列。 (我还想以某种方式格式化FORMATTED列以自动小写RAW字符串的第一个字母,除非它是“I”,删除标点符号,并添加一个句点到最后)。

RAW..............|..FORMATTED..........|.....COMBINED<br>
I have a cold.|..When I have a cold..| <br>
I get sniffly.....|..When I get sniffly,....|......When I have a cold, I get sniffly.

我如何让SQL在最近一行的COMBINED列中创建所需的数据(即“当我感冒了,我会嗤之以鼻”)?我只使用了两列数据 SELECT CONCAT('formatted','raw')FROM'table'ORDER BY id DESC LIMIT 1(但显然这给了我“当我嗤之以鼻时,我会嗤之以鼻。” - 我需要从倒数第二行'格式化',并且来自最近一行的'raw'。

任何帮助都将受到赞赏,无论是哪个问题。

1 个答案:

答案 0 :(得分:0)

我很抱歉,我试过这个,这是一种非常蛮力的方式,但它可能有效。

SELECT CONCAT((SELECT formatted 
               FROM 'table' 
               ORDER BY id 
               DESC LIMIT 1),
              (SELECT raw
               FROM 'table' 
               ORDER BY id 
               DESC LIMIT 1 OFFSET 2));

当它工作时,写一个STORED PROCEDURE,循环这个QUERY并保持限制和偏移值为i和i + 1.

或者,将数据转储到文本文件并使用ruby!