我有一个带有这些值的mysql表:
Filename value
FileA1 11
FileA2 12
FileA3 13
FileA4 14
FileA5 15
FileA6 16
FileA7 17
FileA8 18
FileB1 21
FileB2 22
FileB3 23
我希望表格像这样从FileA(4-8)的值中填充丢失的FileB(4-8):
Filename value
FileA1 11
FileA2 12
FileA3 13
FileA4 14
FileA5 15
FileA6 16
FileA7 17
FileA8 18
FileB1 21
FileB2 22
FileB3 23
FileB4 14
FileB5 15
FileB6 16
FileB7 17
FileB8 18
这是否可能与mysql命令一起使用还是必须使用php之类的东西?
谢谢
答案 0 :(得分:0)
类似的东西可能会起作用:
select a.filename, a.value
from <table> a
union
select replace(a.filename, 'FileA', 'FileB'), a.value
from <table> a
left join <table> b on a.filename = replace(b.filename, 'FileB', 'FileA')
where a.fileName like 'FileA'
and b.filename is null;
正确答案
select a.filename, a.value
from testtable a
union
select replace(a.filename, 'FileA', 'FileB'), a.value
from testtable a
left join testtable b on replace(a.filename, 'FileA', 'FileB') = b.filename
where a.fileName like 'FileA%'
and b.filename is null;
填充丢失的数据
insert into testtable (fileName, value)
select replace(a.filename, 'FileA', 'FileB'), a.value
from testtable a
left join testtable b on replace(a.filename, 'FileA', 'FileB') = b.filename
where a.fileName like 'FileA%'
and b.filename is null;