【发布时间】:2020-07-27 08:27:38
【问题描述】:
我正在尝试根据 IN 输入参数值在过程中使用 where 子句过滤记录,我在 My SQL 中编写了存储过程,如下所示:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_logs_Test`(IN `p_Bot_Ids` VARCHAR(500))
NO SQL
select id, bot_id, log_level,log_type,time_stamp,finger_print,windows_identity,machine_name,process_name,process_version
,job_Id,robot_name,machine_Id,file_name,message,created_date from log
where id < 200 and
bot_id IN (p_Bot_Ids)$$
DELIMITER ;
我的“p_Bot_Ids”是一个逗号分隔的字符串。如果我通过“1,2”,它的过滤只用“1”。如果我通过“2,1”它的过滤只有“2”。
我的“p_Bot_Ids”也可以为空。在这种情况下,我需要提取所有记录。
假设我的表中有 50 条记录。如果我通过 "p_Bot_Ids" = "1,2,3" 我只需要获得 1,2,3 Ids 记录(总共 3 行)。 如果我通过 "p_Bot_Ids" = NULL 那么我应该得到我所有的 50 条记录。
【问题讨论】:
标签: mysql sql csv stored-procedures mysql-python