我的数据库中有以下表格
CREATE TABLE `sms_pool` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ag_id` VARCHAR(20) NOT NULL,
`sms_to` VARCHAR(15) NOT NULL,
`template_name` VARCHAR(100) NOT NULL,
`contents` VARCHAR(500) NOT NULL,
`bulk_flag` VARCHAR(1) NOT NULL,
`file_name` VARCHAR(100) NULL DEFAULT NULL,
`send_flag` VARCHAR(1) NOT NULL,
`creation_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`created_by` VARCHAR(20) NOT NULL,
`processing_msg` VARCHAR(2000) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
);
我希望编写一个以'id'作为输入的过程/函数。
如果'id'等于表中的任何id,那么它应返回相应的行
如果'id'= NULL,那么它应该返回数据库中的所有行。
注意:如果表中没有“id”,那么它应该返回所有行。
我该怎么做?任何帮助表示赞赏。先感谢您。 :d
答案 0 :(得分:1)
create procedure sp_get_data(in in_id int)
begin
declare temp_id int;
set temp_id =(select count(*) from table_name where id =in_id);
if(temp_id) >0
Then
select * from table_name where id = in_id ;
else
select * from table_name ;
end
end