• QSqlQuery查询语句


    SqlQuery 封装了在 QSqlDatabase 上执行的 SQL 查询中创建、导航和检索数据所涉及的功能。 可用于执行 DML(数据操作语言)语句,如 SELECT、INSERT、UPDATE 和 DELETE, 以及 DDL(数据定义语言)语句,如 CREATE TABLE。 它还可用于执行非标准 SQL 的特定于数据库的命令

    1、绑定值

    QSqlQuery 支持将参数值绑定到占位符。

    下面展示了使用几种不同绑定方法将值绑定到存储过程的示例。

    1、使用命名占位符的命名绑定:

    QSqlQuery query;
    query.prepare("INSERT INTO person (id, forename, surname) "
                  "VALUES (:id, :forename, :surname)");
    query.bindValue(":id", 1001);
    query.bindValue(":forename", "Bart");
    query.bindValue(":surname", "Simpson");
    query.exec();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2、使用命名占位符的位置绑定:

    QSqlQuery query;
    query.prepare("INSERT INTO person (id, forename, surname) "
                  "VALUES (:id, :forename, :surname)");
    query.bindValue(0, 1001);
    query.bindValue(1, "Bart");
    query.bindValue(2, "Simpson");
    query.exec();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、使用位置占位符绑定值(版本 1):

    QSqlQuery query;
    query.prepare("INSERT INTO person (id, forename, surname) "
                  "VALUES (?, ?, ?)");
    query.bindValue(0, 1001);
    query.bindValue(1, "Bart");
    query.bindValue(2, "Simpson");
    query.exec();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4、使用位置占位符绑定值(版本 2):

    QSqlQuery query;
    query.prepare("INSERT INTO person (id, forename, surname) "
                  "VALUES (?, ?, ?)");
    query.addBindValue(1001);
    query.addBindValue("Bart");
    query.addBindValue("Simpson");
    query.exec();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、将值绑定到存储过程。下面代码调用名为 AsciiToInt() 的存储过程,通过其 in 参数向其传递一个字符,并将其结果作为 out 参数。

    QSqlQuery query;
    query.prepare("CALL AsciiToInt(?, ?)");
    query.bindValue(0, "A");
    query.bindValue(1, 0, QSql::Out);
    query.exec();
    int i = query.boundValue(1).toInt(); // i is 65
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    MySQL多条件语句查询

    SELECT * FROM table WHERE condition1 AND condition2;
    eg:

    SELECT identity,patid FROM personInfo where patid = 11202201191498 AND createtime BETWEEN '2023-09-05 0:0:0' AND '2023-09-08 23:59:59'  ORDER BY createtime DESC
    或者
    SELECT identity,patid FROM personInfo where patid = 11202201191498 AND createtime >= '2023-09-05 0:0:0' AND createtime <= '2023-09-09 23:59:59'  ORDER BY createtime DESC
    
    • 1
    • 2
    • 3

    注: 在不确定MySQL语句是否正确的时候,可以安装Navicat客户端新建查询语句帮忙验证。

  • 相关阅读:
    Python常见报错及解决方案,建议收藏
    【07】请你谈谈单例模式的优缺点,注意事项,使用场景?
    爬虫:网站三次请求获取频道内容
    关于ActiveMQ的demo
    2023年全球及中国抗体/蛋白/非核酸疫苗CDMO市场分析:生物药CDMO规模同步增长[图]
    C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境
    golang学习笔记——基础03
    装饰器模式
    搭建VUE前端项目流程——Node.js 、Yarn、npm、Vue、Vite、Webpack
    信号处理中简单实用的方法——数据的延拓
  • 原文地址:https://blog.csdn.net/u012861705/article/details/132831252