如果标题是抽象的,我很抱歉。
有没有办法在不同的行中交错空字段?
例如,原始表格:
架构:
CREATE TABLE `test` (
`id` int(6),
`name` varchar(20),
`content` varchar(20)
) DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`, `name`, `content`) VALUES
('1', Null, Null),
(Null, '1', 'aaa'),
(Null, '2', 'bbb'),
('2', Null, Null),
(Null, '3', 'ccc'),
(Null, '4', 'ddd'),
('3', Null, Null),
(Null, '5', 'eee'),
(Null, '6', 'fff');
期望结果:
谢谢你的时间和建议。
2条答案
按热度按时间7kqas0il1#
其实没有一个好的方法来实现你的建议。行没有固有的顺序;你所建议的交错假设一个顺序根本不存在。
现在,如果“test x row y”总是属于id=x,那就不同了。。。
像这样的东西应该管用
或者,您也可以在不使用联接的情况下获得类似的结果,使用字符串函数来提取
id
从content
.omvjsjqw2#
不能保证数据库中的行是按您所希望的方式排列的,因此这可能是不可能的,除非有某种方法将名称/内容列的值链接到id列。
如果每个id只与两行相关联,并且测试的名称只是序列号,那么可以将名称Map到id并将它们连接起来(加入
id
1至name
1和2,id
2至name
3和4等):我怀疑不是这样的,所以最终不可能在没有找到将id和其他两列关联起来的方法的情况下执行这个select。