Я пытаюсь отфильтровать записи с помощью условия where в процедуре на основе значений входных параметров IN. Я написал хранимую процедуру в 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 ;
My "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 записей.