SQLite存储以零开头的字符串,例如“0”;001“;

SQLite存储以零开头的字符串,例如“0”;001“;,sqlite,types,Sqlite,Types,我应该在SQLite中选择哪种数据类型来在数据库中存储诸如“001”之类的字符串 我尝试过使用文本,但当我输入字符串001时,它会删除00,只放1 我甚至尝试过使用“blob”数据类型,但仍然没有成功。它们都会在数字前去掉零。对我来说没问题: sqlite> create table sotest ...> ( ...> col1 varchar(20) ...> ); sqlite> sqlite> select * from sotest

我应该在SQLite中选择哪种数据类型来在数据库中存储诸如“001”之类的字符串

我尝试过使用文本,但当我输入字符串001时,它会删除00,只放1

我甚至尝试过使用“blob”数据类型,但仍然没有成功。它们都会在数字前去掉零。

对我来说没问题:

sqlite> create table sotest
   ...> (
   ...> col1 varchar(20)
   ...> );
sqlite>
sqlite> select * from sotest;
sqlite>
sqlite> insert into sotest values ('001');
sqlite> select * from sotest;
001
sqlite>
也许你没有引用你的字符串?例如:

sqlite> insert into sotest values ('001');
sqlite> select * from sotest;
001
sqlite> insert into sotest values (001);
sqlite> select * from sotest;
001
1
sqlite>

列类型应设置为varchar,而不是string,如果类型为string,则会自动删除零。

是什么让您认为零正在被删除?我假设DB实际上存储的是正确的数据,但是您用来查看数据的任何GUI客户端都将其格式化为数字。如果编写代码将字符串从数据库中拉回来,会发生什么?它还有零吗?你能分享显示数据的代码吗?它可能将结果解释为一个数字,并删除零(不是sqllite)@JesseWebb谢谢你的提示。我使用Navicat for SQLite,就像我习惯于测试Mysql一样,我直接插入了数据。纳维卡特以其自身的智慧在删除零。当我在引用零的同时使用insert语句时,它是有效的。它不会像预期的那样工作,尤其是在上述情况下。其他数据库可能是但不是SQLite..@lukik-IMO,目前可用的最好的SQLite GUI工具是Firefox插件。如果您对Navicat的行为不满意,我建议您尝试一下。