变量只能返回一个值 set num = (select id from table_name where id = '1') 只返回一个值Describe data_table col_name; 返回1个记录集,如是5以上,直接访问系统表得到记录集
你的 (Describe data_table col_name) 返回的结果如下。 你打算让 NUM 等于什么呢?mysql> desc tabl1 qqq1; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | qqq1 | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)mysql>
DELIMITER // CREATE PROCEDURE tt() BEGIN DECLARE num VARCHAR(20); set num=(select NUMERIC_PRECISION from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='data_table' and COLUMN_NAME='col_name'); select num; END // DELIMITER ;
这个出来的是个结果集
set num = (select id from table_name where id = '1')
只返回一个值Describe data_table col_name;
返回1个记录集,如是5以上,直接访问系统表得到记录集
返回的结果如下。 你打算让 NUM 等于什么呢?mysql> desc tabl1 qqq1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| qqq1 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)mysql>
CREATE PROCEDURE tt()
BEGIN
DECLARE num VARCHAR(20);
set num=(select NUMERIC_PRECISION from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='data_table' and COLUMN_NAME='col_name');
select num;
END //
DELIMITER ;