问下SQL语句是弱类型的还是强类型的  我这个 reg_type 是 enum类型enum(1,2)SELECT asset_id FROM gx_school_asset  WHERE ( `reg_type` = 2 )
SELECT asset_id FROM gx_school_asset  WHERE ( `reg_type` = '2' )
就上面这两条语句   简直是两个不同的方向搜索
求解

解决方案 »

  1.   

    实际上enum存储的是数字如enum('one','two','three') 就分别对应1 2 3NULL NULL 
    '' 0 
    'one' 1 
    'two' 2 
    'three' 3 而您的enum('1','2')刚好对应 1 2NULL NULL 
    '' 0 
    '1' 1 
    '2' 2 所以结果一样,执行下面的语句可以看见SELECT asset_id,`reg_type`,`reg_type`+0 FROM gx_school_asset WHERE ( `reg_type` = 2 )
    参考
    http://dev.mysql.com/doc/refman/5.1/en/enum.html
      

  2.   

    感觉你说的有点到理当我这样查询时WHERE ( `reg_type` = 2 )  时打印SQL语句 出来的 reg_type是等于1的
    这是为什么?