查询表的所有字段

有时表的字段过多且字段复杂,为了方便可以写一个函数直接返回表的所有字段。以学生表为例,先创建表:

CREATE TABLE `student_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `student_name` varchar(10) DEFAULT NULL,
  `class_no` varchar(10) DEFAULT NULL,
  `student_id` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

创建函数:

DELIMITER $$

CREATE
    FUNCTION `这里是数据库名称`.`table_info`(param_table_name VARCHAR(100))
    RETURNS VARCHAR(1024) CHARSET utf8
    BEGIN
 DECLARE var_table_field VARCHAR(1024);
    DECLARE var_table_field_sentence VARCHAR(1024);
SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ',') INTO var_table_field  FROM information_schema.COLUMNS WHERE table_name = param_table_name AND table_schema = DATABASE();
    
SET var_table_field_sentence=CONCAT('select ',var_table_field ,' from ' ,param_table_name);
    RETURN var_table_field_sentence ;
    END$$

DELIMITER ;

执行函数:

SELECT `table_info`('student_info')

返回效果:

SELECT id,student_name,class_no,student_id FROM student_info
发布了101 篇原创文章 · 获赞 92 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_39706570/article/details/104088391