从表中获取值/值

时间:2017-02-03 05:40:56

标签: mysql sql function procedure

我的数据库中有以下表格

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

1 个答案:

答案 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