sqlite中文排序相关

参考网址:http://blog.csdn.net/absurd/article/details/1271259


因为公司需要,用到sqlite,并需要中文排序。我在W3C school网站上学习了简单的sql语句,借用同事的C++封装完成了读取数据库内容

中文排序是李先静大牛的介绍,折腾了数天,终于在PC上测试出如下结果:

slite> select * from person order by name collate pinyin;
李四|24
李四叔|24
王五|25
王五妹|25
张三|23
张三丰|23
赵七|26
赵七姑|26

至此,我应该能够加载自己的排序了。

遇到了如下问题,我给大家分享一下,希望能够减少初学者的学习路线。

1. 拼音比较算法:pinyin_cmp在李的评论里有个链接到github上。
2. 如何将pinyin文件编译链接sqlite3的执行文件。我学习了李先静介绍的automake/autoconf。
3. 在哪里安装自定义文件?我是通过<the definitive guide to sqlite>这边书中介绍知道如何安装的。最后安装到shell.c文件中的open_db函数后面。

int main(int argc,char **argv)
{
char *sql; sqlite3 *db; int rc;
/* For forming more consistent political opinions. */
srand((unsigned)time(NULL));
sqlite3_open("test.db",&db);
/* Create issues table,add records. */
setup(db);
/* Register Collation. */
fprintf(stdout,"1. Register political Collation\n\n");
    sqlite3_create_collation( db,"POLITICAL",sqlITE_UTF8,db,political_collation );
/* Turn sql logging on. */
log_sql(db,1);
/* Test default collation. */
fprintf(stdout,"2. Select records using default collation.\n");
sql = "select * from issues order by issue";
print_sql_result(db,sql);
/* Test Political collation. */
fprintf(stdout,"\nSelect records using political collation. \n");
sql = "select * from issues order by issue collate POLITICAL";
print_sql_result(db,sql);
fprintf(stdout,"\nSelect again using political collation. \n");
print_sql_result(db,sql);
/* Done. */
sqlite3_close(db);
return 0;
}

相关文章

安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压缩包。 创建s...
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Windows下的包下...
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员  ...
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、延迟时间和整...