【问题标题】:In mysql how to passs multiple values with camma separated in where clause在mysql中如何在where子句中用逗号分隔多个值
【发布时间】:2018-04-08 15:27:59
【问题描述】:
select log_id as attendanceId,l.user_id as employeeId,l.log_date as attnInDate,emp.emp_name as 
employeeName,l.in_remarks as inRemarks,emp.dept_id as departmentId,fn_get_hr_dept_name(emp.dept_id) as 
departmentName, l.out_remarks as outRemarks,group_concat(CASE WHEN log_date = log_date THEN log_time ELSE '' END) AS logTimings,MIN(CASE WHEN log_date = log_date THEN log_time ELSE NULL END) inTime1,MAX(CASE WHEN log_date = log_date THEN log_time ELSE NULL END) inTime2,MAX(CASE WHEN log_date = log_date THEN log_time ELSE NULL END) outTime1,TIME_FORMAT(timediff(MAX(CASE WHEN log_date = log_date THEN log_time ELSE NULL END),MIN(CASE WHEN log_date = log_date THEN log_time ELSE NULL END)), '%H:%i') as workingHrsMonth

 from at_hr_logs_2017_October l,at_hr_emp emp where log_date=curdate() 
and l.user_id=emp.emp_code and emp.dept_id=5 and 6 group by user_id;

想像dept_id=5,6,7,8那样传递dept值

有关此的任何解决方案请联系我。

【问题讨论】:

  • 您可能想查看IN() 运算符:dev.mysql.com/doc/refman/5.7/en/…。您应该考虑查看常见问题解答How to Ask,了解如何提出好的问题,以便获得好的答案。
  • 样本输入和输出现在非常宝贵。我怀疑您需要的不仅仅是使用WHERE IN (...),但在我看到一些数据之前我无法确定。

标签: mysql


【解决方案1】:

我假设您在 where 子句中谈论的是emp.dept_id = 5 and 6, 在这种情况下,您将不得不使用“IN”。

例如:emp.dept_id IN (5,6,7,8)

【讨论】:

  • 感谢您提供宝贵的反馈,因为它工作得很好。
【解决方案2】:

正如 Andreas Feste 所说,您可以使用 IN 运算符。

使用

 where dept_id in (5,6,7,8)

【讨论】:

    【解决方案3】:

    这可能对你有帮助

    SELECT column1
    FROM tablename          
    WHERE column IN (val1, val2, val3);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多