2014-03-03 59 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。 –