提问者:小点点

如何使用IN从MySQL中选择所有数据?


我有一个sql代码,其中我使用IN运算符搜索值,有时我想传递过滤器“any”以获取存在的任何数据。 但我不知道是怎么回事。

SELECT COALESCE(TIME_TO_SEC(SUM(final_date_report - initial_date_report)), 0)
FROM work_order
WHERE construction_id IN (:idConstruction) AND equipment_id IN (:idEquipment)

idConstruction和idEquipment是类似[29,2]...


共1个答案

匿名用户

SELECT COALESCE(TIME_TO_SEC(SUM(final_date_report - initial_date_report)), 0)
FROM work_order
CROSS JOIN ( SELECT :idConstruction construction_id_criteria,
                    :idEquipment equipment_id_criteria ) criteria
WHERE (FIND_IN_SET(construction_id, construction_id_criteria) OR construction_id_criteria = 'ANY') 
  AND (FIND_IN_SET(equipment_id, equipment_id_criteria) OR equipment_id_criteria = 'ANY')