すべてのフィールドは、ルックアップテーブル

時々、テーブルとフィールドの複合体の、あまりにも多くの分野では、容易にするために、テーブルのすべてのフィールドを返す関数を書くことができます。学生テーブルは、例えば、テーブルを作成します。

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 ビュー60000 +

おすすめ

転載: blog.csdn.net/qq_39706570/article/details/104088391