【发布时间】:2014-04-02 19:25:55
【问题描述】:
我正在寻找相当于伯克利数据库的
SELECT COUNT All, SELECT COUNT WHERE LIKE "%...%"
我有 100 条记录,键为:1、2、3、... 100。
我有以下代码:
//Key = 1
i=1;
strcpy_s(buf, to_string(i).size()+1, to_string(i).c_str());
key.data = buf;
key.size = to_string(i).size()+1;
key.flags = 0;
data.data = rbuf;
data.size = sizeof(rbuf)+1;
data.flags = 0;
//Cursor
if ((ret = dbp->cursor(dbp, NULL, &dbcp, 0)) != 0) {
dbp->err(dbp, ret, "DB->cursor");
goto err1;
}
//Get
dbcp->get(dbcp, &key, &data_read, DB_SET_RANGE);
db_recno_t cnt;
dbcp->count(dbcp, &cnt, 0);
cout <<"count: "<<cnt<<endl;
Count cnt 始终为 1,但我希望它计算 Key=1 的所有部分键匹配:1、10、11、21、... 91。 我的代码/对 DB_SET_RANGE 的理解有什么问题? 是否可以在 BDB 中获得 SELECT COUNT WHERE LIKE "%...%" ? 也可以从文件中获取 SELECT COUNT All 记录吗?
谢谢
【问题讨论】:
标签: sql berkeley-db