Я создаю динамическую c хранимую процедуру, которая будет содержать несколько параметров, таких как "p_From_Date" и "p_To_Date". Мне нужно сделать условие, если не NULL Concat для запроса в предложении, где между заданными датами и необходимо ограничить с размером страницы. Мой код как показано ниже:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_logs_Test`(IN `p_Bot_Ids` VARCHAR(500),
IN `p_From_Date` DATETIME,
IN `p_To_Date` DATETIME, IN `page` INT(11),
IN `pageSize` INT(11), OUT `TotalRows` INT(11))
NO SQL
BEGIN
DECLARE x VARCHAR(100);
SELECT COUNT(*) INTO @count FROM bots;
IF (page IS NULL) THEN
set page = 0;
END IF;
IF (pageSize IS NULL OR pageSize = 0) THEN
set pageSize = 10000000;
END IF;
set @query = concat('
SELECT l.id
, b.bot_id
, b.bot_name
, l.log_level
, l.log_type
, l.time_stamp
, l.finger_print
, l.windows_identity
, l.machine_name
, l.process_name
, l.process_version
, l.job_Id
, l.robot_name
, l.machine_Id
, l.file_name
, l.message
, l.created_date
FROM log l
join bots b
ON l.bot_id = b.bot_id
where b.bot_id in (',p_Bot_Ids,')
ORDER
BY b.bot_name ASC
');
prepare sql_query from @query;
execute sql_query;
SET TotalRows = @count;
END$$
DELIMITER ;