我有一个包含两行数据的数据库。我想组合前一行中的列和当前行中的一列来创建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'。
任何帮助都将受到赞赏,无论是哪个问题。
答案 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!