本帖最后由 m582445672 于 2010-12-20 15:34:16 编辑

解决方案 »

  1.   

    MYSQL不支持这种语法,你可以通过 INFORMATIONSCHEMA。COLUMN表来得到相关信息。
      

  2.   

    Describe data_table col_name
    这个出来的是个结果集
      

  3.   

    变量只能返回一个值
    set num = (select id from table_name where id = '1')
    只返回一个值Describe data_table col_name;
    返回1个记录集,如是5以上,直接访问系统表得到记录集
      

  4.   

    你的 (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>
      

  5.   

    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 ;