2014-03-03 54 views
0

在我的用戶表中,我有一個字段hours,當我選擇所有用戶時,我還需要獲得一個變量fullTime,該變量將基於if hours等於7.4。這是我可以在查詢中完成的事情,而不是循環遍歷所有用戶?我有600多行,我試圖以最有效的方式做到這一點,因爲每次頁面加載都會發生這種情況。我想這樣SELECT *, fullTime as (hours EQUALS 7.4) FROM usersMysql IF在聲明中

編輯:工作SQL SELECT * , IF(hours_per_day = 7.5, 1, 0) AS fullTime FROM users

+0

[SELECT'語句]中的MySQL'IF'的可能重複(http://stackoverflow.com/questions/5951157/mysql-if-in-select-statement) – ChrisW

+0

什麼是您的表格列和數據? –

+0

最簡單的方法是'(小時> = 7.4)作爲全時「。你不需要'if'或'case'。 –

回答

1

下面將返回一列與fulltime = 1,如果小時= 7.4和fulltime = 0,否則。

SELECT *, IF(hours = 7.4, 1, 0) AS fulltime FROM users 

請注意,如果由於浮點數的不準確而導致小時數爲浮點數列,則可能會失敗。

+0

工作一個款待:)謝謝,我會接受什麼時候讓我:P。 –

1

試試這個

SELECT * , if(hours >= 7.4 ,col_time, hours) as fullTime FROM users 

解釋:

如果時間> = 7.4(不僅準確小時= 7.4,但也越大),你會得到你的專欄,你有時間存儲完整的日期或全程。你甚至可以通過DATE_FORMAT改變它。否則你會得到小時讓我們說5,或者什麼的。

+0

雖然我可以看到'> ='的好處,但這個項目有點奇怪,因爲7.5+小時以上的人員都是人力資源部門兼職,所以全職人員只有7.4。 –