2015年5月26日 星期二

[MySQL]如何將同資料表中的兩個欄位運算後使用

如何將同資料表中的兩個欄位運算後使用?

這句話好像有點不好理解,來看個範例.

資料表 `bus`
|-`id`  (索引)
|-`start`  (開始時間)
|-`during` (經過時間)


從上方這個資料表我們可以知道,這輛巴士的開始時間經過的時間
有了開始時間與經過時間很容易推算結束時間



就是  `start` + `during` = `end`

非常容易理解。

那如果假設今天要搜尋結束時間為大於   1432598400   (UNIX TIME)
 下意識的語法是

SELECT *,(`start`+`during`) AS `end`

             FROM `bus`

             WHERE `end` >= 1432598400   
很不幸的....MySQL 會吐出討厭的紅色錯誤...

那該怎麼解決呢?

其中一種方法是,先準備好資料表,再進行排序.....

SELECT * FROM

             (SELECT *,(`start`+`during`) AS `end` FROM `bus`) AS `table`

             WHERE `end` >= 1432598400


這樣子就可以WORK了!!!!

應該是還有其他用法,目前這樣可以就先擋著用......

沒有留言:

張貼留言