QT读写sqlite数据库 的问题
本帖最后由 隐藏英雄 于 2023-1-20 10:16 编辑我试着这样写了 但是不能输出,至于第二段我更是不会了!
https://wwot.lanzouw.com/iKK3t0lg361i
数据库文件已上传蓝奏
int col1 = rec.indexOf("data");
sql.exec("seledct * tablenamewhere num<>0order by num DESC");
while(sql.next())
{
qDebug() << sql.value(col1).toString();
} query.exec("SELECT * FROM tablename where num<>0 order by num DESC;");
while(query.next())
{
QString data = query.value(2).toString();
qDebug()<<data;
}
query.exec("SELECT * FROM tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1);");
while(query.next())
{
QString data = query.value(2).toString();
qDebug()<<data;
} select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1)
你这段代码是错误的
sql.exec("seledct * tablenamewhere num<>0order by num DESC"); 应该是select
本帖最后由 隐藏英雄 于 2023-1-20 09:26 编辑
btc001 发表于 2023-1-20 08:21
select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY...
大佬你可能不知道我的水平,发个图片你就懂了。。。可以帮我完善一下以下代码 达到我说的效果吗谢谢了{:301_1008:}
}
按num 从大到小的顺序 输出data里的字段,,num为0的不输出
int col1 = rec.indexOf("data");
sql.exec("select * tablename where num<>0 order by num DESC");
while(sql.next())
{
qDebug() << sql.value(col1).toString();
}
按照dataid 的值相同的为一组, 按组分别输出每组的data里的字段
int col2 = rec.indexOf("data");
sql.exec("select * from tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1");
while(sql.next())
{
qDebug() << sql.value(col2).toString();
}
btc001 发表于 2023-1-20 09:32
query.exec("SELECT * FROM tablename where num0 order by num DESC;");
while(qu ...
BY dataid HAVING COUNT(dataid)>1)
sql.value(2)
num<>0
rec.indexOf("data");
大佬上面这4句 我不懂它的意思,可以教教我怎么解释它们吗谢谢了 看来论坛里面学Qt的人比较多呢。 隐藏英雄 发表于 2023-1-20 09:47
BY dataid HAVING COUNT(dataid)>1)
sql.value(2)
num0
先执行sql语句query.exec
然后循环执行 while
每执行一次该函数,便指向相邻的下一条记录query.next()
取data----query.value(2).toString(); 0是id字段 1是num字段 2是data字段 4是dataid字段
btc001 发表于 2023-1-20 09:56
先执行sql语句query.exec
然后循环执行 while
每执行一次该函数,便指向相邻的下一条记录query.next()
这段代码是筛选了dataid相同的数据 然后 全部依次输出了,如果只要dataid为 2 的数据的话 要怎么改一下呢
sql.exec("SELECT * FROM tablename WHERE dataid IN(SELECT dataid FROM tablename GROUP BY dataid HAVING COUNT(dataid)>1);");
while(sql.next())
{
QString data = sql.value(2).toString();
qDebug()<<data;
} 隐藏英雄 发表于 2023-1-20 10:26
这段代码是筛选了dataid相同的数据 然后 全部依次输出了,如果只要dataid为 2 的数据的话 要怎么改一下 ...
uery.exec("SELECT * FROM tablename where dataid=2;");
while(query.next())
{
QString data = query.value(2).toString();
qDebug()<<data;
} sql语句都错了
页:
[1]
2