我有一個有100個字段的巨大表格。每行都有時間戳。我想爲所有列找到最新的非空值。我正在使用MySql 5.6 InnoDBmysql:找到最新的非空值
create table tester(
pub_id int,
pub_name varchar(20),
pub_city varchar(20),
country varchar(20),
no_of_branch varchar(20),
estd datetime
);
insert into tester (pub_id, pub_name, pub_city, country, estd)
values
(1, 'a', 'xyz', 'abcity' , 'a', '1970-01-01 00:00:01'),
(2, 'a', 'xyz', '' , 'a', '1971-01-01 00:00:01'),
(3, 'a', 'xyz', 'abcity1', 'b', '1972-01-01 00:00:01'),
(4, 'a', 'xyz', '' , 'a', '1973-01-01 00:00:01'),
(5, 'a', 'xyz', 'abcity2', '' , '1974-01-01 00:00:01'),
(6, 'b', 'lmn', 'abcity' , 'a', '1974-01-01 00:00:01'),
(7, 'b', 'xyz', '' , 'a', '1975-01-01 00:00:01'),
(8, 'b', 'sdf', 'abcity1', 'b', '1976-01-01 00:00:01'),
(9, 'b', '' , '' , 'a', '1977-01-01 00:00:01'),
(10, 'b', '' , 'abcity2', '' , '1978-01-01 00:00:01');
我要查詢這會給我:
'a', 'xyz', 'abcity2', 'a'
'b', 'sdf', 'abcity2', 'b'
我不想單獨使用查詢在那裏我找到空值的表中的每一列,然後採取合併爲這將是一個非常繁瑣的任務,因爲我的實際表格有100列。
我已經搜索了我們夫婦的過去的解決方案,什麼也沒找到。任何幫助將不勝感激。
謝謝
什麼是你的問題?你搜索一個「棘手」的方式來做到這一點,以避免建立一個具有100個條件的查詢? – 2014-11-04 21:01:43
是的。我確信有更好的方法來在SQL中執行此搜索。 – 2014-11-04 21:03:35
你的算法不清楚。你如何達到這個預期的結果?看來你正在按pub_name進行分組。 – Sebas 2014-11-04 21:30:53