我有一个MyISAM表,其中表名是test,字段只有一个field1长度是2位长,但里面的数据显示field1的数据可以显示到4位,如1234,2345,我用select * from test where field1=1234;可以查到结果,但如何1234加上了双引号就不能查到结果.
而我向该表加入记录时,只能加2位数据,如12,23,45,不能加到4位长,真的不清楚他的表是怎么搞的,麻烦各位赐教,谢谢!

解决方案 »

  1.   

    贴下结果:show create table 表名;
      

  2.   

    你的这个字段是 数字型吧? float (4) ,这时的长度仅是在MYSQL内部设置工具的显示长度,并不影响实现存储长度。create table test1 (field1 varchar(2)); 你试一下。
      

  3.   

    我用mysql-front查看结构是char(2)啊,但用insert命令时,只能插入到2位的数字.
      

  4.   

    这个test表,之前数据显示是4位数,但我插入数据只能插到2位数据,我用mysql-front编辑数据,发现编辑2位显示的数据是没有问题,但编辑显示4位数的数据就有问题,改过后,弹出"记录没有找到,或别处的用户改变这录制"按确定后,记录又恢复为原来的记录,不知道怎么回事.而通过mysql-front直接增加记录,只能写入一条2位数的记录,真的不知道之前的数是怎么输进去的.
      

  5.   

    show create table test ;显然一下你的语句。另外你的测试用例。这样别人可以在自己的机器上模拟你的问题。
    建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
      

  6.   

    谢谢,show create table test显示数据如下:
    ---------------------------------------
    | Table  | Create Table   |
    ---------------------------------------
    |  test   |CREATE 'test'(
     'field1' char(5) not null default ''
    )ENGINE=myISAM DEFAULT CHARSET=gbk;
    ----------------------------------------
    1 row in set (0.00sec)而用select * from test;显示内容如下:
    --------------
    |  field1    |
    --------------
    | 5016984585 |
    | 5016984586 |

    | 12345      |
    3rows in set(0.00sec)5016984585,5016984585是以前表的记录,而12345是新增加的记录,我想加一条记录在案是1234567890,但不能加进去.
      

  7.   

    你的sql模式是什么
    mysql> show variables like "sql_mode"
        -> ;
    +---------------+---------------------------------------------------------------
    -+
    | Variable_name | Value
     |
    +---------------+---------------------------------------------------------------
    -+
    | sql_mode      | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
     |
    +---------------+---------------------------------------------------------------
    -+
    1 row in set (0.03 sec)
    设置我这样的
      

  8.   

    谢谢,my.ini中的sql_mode是NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,在这个模式下插入记录可可以插入的,但不能将10位的数字都插入进去,只能插入到5位,而将sql_mode的模式改为STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,但插入10位的记录时出现Data too long for column "field1" at row 1错误提示.能不能将我那个表上存来,让你们看看,那个表是怎么设置啊,好象不能上存啊.