0
根據用戶條件,如果數據不存在,MySQL可以創建新的虛擬行?
我的查詢看起來是這樣的:SQL:命令創建虛擬行如果不存在
SELECT year, value, type FROM myTable
WHERE year BETWEEN ('2010' AND '2013') AND type IN ('Oil', 'Gas');
輸出:
year | value | type
---------------------
2013 | 0 | Oil
2012 | 144.5 | Oil
2012 | 434.3 | Gas
2011 | 141.0 | Oil
2011 | 1234 | Gas
2010 | 4567 | Gas
---------------------
我想運行,將這樣的輸出記錄的查詢:
year | value | type
---------------------
2013 | 0 | Oil
2013 | 0 | Gas // -> new virtual* row
2012 | 144.5 | Oil
2012 | 434.3 | Gas
2011 | 141.0 | Oil
2011 | 1234 | Gas
2010 | 4567 | Gas
2010 | 0 | Oil // -> new virtual* row
---------------------
用戶想同時顯示'Gas'和'Oil',但自2013年以來只包含'Oil'類型,因此我想創建'Gas'的新記錄,其值爲0,然後與2010年相同(基於期望的輸出以上)。
編輯:
CREATE TABLE `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(15) DEFAULT NULL,
`year` year(4) DEFAULT NULL,
`value` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=92278 DEFAULT CHARSET=latin1
您可以輕鬆地提供客戶端(PHP)這種觀點,那麼你爲什麼要搜索這種類型的查詢? –
因爲你只有石油和天然氣? – Mihai
「類型」也是動態的,它可以包含任何類似'煤炭','權力'等取決於用戶輸入。 (實際上,我有兩個表格,一個是值,另一個是typeNames)。 – 1mr3yn