SQLite3 中怎么查找最小可用产品的空缺ID

android SQLite3的查询语句的Where语句问题 - ITeye问答
private static final String DATABASE_TABLE = "Income";
private static final String DATABASE_CREATE =
& "create table Income("
&&&& +"_id INTEGER PRIMARY KEY,"& //ID
&&&& +"item TEXT,"&&&&&&&&&&&&&
&&&& +"project TEXT,"&&&&&&&&&
&& +"amount NUMERIC "
& +");";
public static final String KEY_ID = "_id";
public static final String KEY_ITEM = "item";
public static final String KEY_PROJECT = "project";
public static final String KEY_AMOUNT = "amount";&&&&&&&&
我现在有五个查询条件
item , project , dayu_amount , dengyu_amount , xiaoyu_amount
先判断为不为空,不为空,这作为where中的一条条件,为空则不作为条件。最后进行查询。
类似SQL的动态语句
select * from table
where column.a=case when isnull(a,'')!='' then a else column.a end
and column.b=case when isnull(b,'')!='' then a else column.b end
and column.c=case when isnull(c,'')!='' then a else column.c end
and column.d=case when isnull(d,'')!='' then a else column.d end
下面是我自己写的,请问对吗?错的话,能说下怎么写吗
& return db.query(DATABASE_TABLE,
&&&& new String[] {KEY_ID, KEY_ITEM, KEY_PROJECT, KEY_AMOUNT},
"KEY_ITEM = case when isnull(Item,'')!='' then Item else KEY_ITEM end" +
"and KEY_PROJECT = case when isnull(Project,'')!='' then Project else KEY_PROJECT end " +
"and KEY_AMOUNT = case when isnull(Dengyu_amount,'')!='' then Dengyu_amount else KEY_AMOUNT end" +
"and KEY_AMOUNT & case when isnull(Dayu_amount,'')!='' then Dayu_amount else KEY_AMOUNT end" +
"and KEY_AMOUNT & case when isnull(Xiaoyu_amount,'')!='' then Xiaoyu_amount else KEY_AMOUNT end",
&& null,null,null,null);
目前还没有答案
已解决问题
未解决问题IOS Sqlite的详细使用方法
我的图书馆
IOS Sqlite的详细使用方法
在ios中,我们使用的数据库也是Sqlite,和Android一样,操作方法也很类似,不同的是Android中使用的sqlite都是java语句,而ios中使用的Sqlite则是C语言,纯的C语言
// 在ios中使用Sqlite数据库需要引入一个矿建,就是libsqlite3.dylib框架
// 如下图,首先点击项目,找到Build Phases--Link Binary With Libraries,
然后点击左下角的小加号
输入sqlite进行模糊搜索,然后选择下面那个libsqlite3.dylib&
// 选好之后就是这样
// 使用前需要引入 注意是&&括号,不是双引号
&sqlite3.h&
// 然后开始代码部分
// 创建数据库
#pragma mark 打开创建数据库
- (void)openDataBase {
& // 创建并打开数据库
& // 获取数据库的路径
& NSString *documentPath =
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
objectAtIndex:0];
设置数据库的路径和名词
& NSString *dataBasePath = [[NSString alloc] initWithString:[documentPath
stringByAppendingPathComponent:@"sqlite.sqlite"]];
& // 创建并打开数据库
& & int result = sqlite3_open([dataBasePath UTF8String], &db);
& & if (result == SQLITE_OK) {
& NSLog(@"数据库打开成功");
& & } else {
& & NSLog(@"数据库打开失败。。。。。。");
// 创建数据表
#pragma mark 创建数据表
- (void)createTabels {
& // sql语句
*sql = "create table if not
exists t_persons (id integer primary key autoincrement, name text,
age integer);";
& // 用于保存错误信息&
& & char *
执行创建语句并接收结果
& & int result = sqlite3_exec(db, sql, NULL, NULL, &error);
& // 判断是否创建成功
& & if (result != SQLITE_OK) {
& & NSLog(@"创建数据表失败~~~~~~~~:%s",
& & } else {
& NSLog(@"数据表创建成功");
// 插入数据
#pragma mark 插入数据
- (void)insertData {
& // sql语句
*sql = "insert into
t_persons(name, age) values(?, ?)";
& // 存储的内容
& sqlite3_stmt *
& // 执行语句并接收结果
& & int result = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
& // 判断是否成功
& & if (result == SQLITE_OK) { //
& sqlite3_bind_text(stmt, 1, "lidaze", -1, NULL);
& sqlite3_bind_int(stmt, 2, 10);
& & // 执行插入语句
(sqlite3_step(stmt)& ==
SQLITE_DONE) {
NSLog(@"插入成功。。。。。");
& } else {
NSLog(@"插入失败");
& & } else {
& NSLog(@"语法不通过
& // 释放stmt
& sqlite3_finalize(stmt);
// 查找数据
#pragma mark 查找数据
- (void)findData {
& // 准备C语言sql语句
*sql = "select * from
t_persons";
& // 准备stmt
& sqlite3_stmt *
& // 判断sql语句,并接收结果
& & int result = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
& // 判断结果
& & if (result == SQLITE_OK) { // sql语句正确
& NSLog(@"sql语句正确");
& & // 进行逐行读取内容
(sqlite3_step(stmt) ==
SQLITE_ROW) {
int ID = sqlite3_column_int(stmt, 0);
char *name = (char *)sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
NSLog(@"id:%i, name:%s, age:%i", ID, name,
& & } else {
& NSLog(@"sql语句错误");
// 删除数据
#pragma mark 删除数据
- (void)deleteData {
& // 准备sql语句
*sql = "delete from t_persons
where id = ?";
& sqlite3_stmt *
& // 判断sql语句
& & int result = sqlite3_prepare(db, sql, -1, &stmt, NULL);
& // 判断sql语句时候通过
& & if (result == SQLITE_OK) {
& NSLog(@"删除语句正确");
& sqlite3_bind_int(stmt, 1, 58);
& & // 判断时候执行成功
(sqlite3_step(stmt) ==
SQLITE_DONE) {
NSLog(@"删除成功");
& } else {
NSLog(@"删除是吧i");
& & } else {
& NSLog(@"删除语句错误");
// 修改数据
#pragma mark 修改数据
- (void)updateData {
& // 准备C语言sql语句
*sql = "update t_persons set
name = ?, age=18 where id = ?;";
& // 准备stmt
& sqlite3_stmt *
& // 执行sql语句的判断
& & int result = sqlite3_prepare(db, sql, -1, &stmt, NULL);
& // 判断sql语句时候可用
& & if (result == SQLITE_OK) {
& NSLog(@"修改语句正确");
& sqlite3_bind_text(stmt, 1, "Zeeeeeeeeeee", -1, NULL);
& sqlite3_bind_int(stmt, 2, 62);
& & // 执行并判断结果
(sqlite3_step(stmt) ==
SQLITE_DONE) {
NSLog(@"修改成功");
& } else {
NSLog(@"修改失败....");
& & } else {
& & NSLog(@"修改语句错误....");
TA的最新馆藏
喜欢该文的人也喜欢内存流加载sqlite3数据库(急)-其他数据库-其他数据库-真格学网-IT技术综合网站
内存流加载sqlite3数据库(急)
来源:本网整理
本文相关:
上一条:下一条:请问sqlite中如何删除一条XX最小的数据_百度知道
请问sqlite中如何删除一条XX最小的数据
比如删除表table中,id最小的数据我用delete from table where id=min(id);报错,说min的用法错了,请问应该怎么写?
我有更好的答案
delete from table where id=(select min(id) from table)
采纳率:41%
来自团队:
为您推荐:
其他类似问题
sqlite的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 最小化可用设计 的文章

 

随机推荐