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