• 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客户端新建查询语句帮忙验证。

  • 相关阅读:
    火车头采集怎么使用GPT等AI原创文章
    电子商务的三个要素是人、货、场
    MES在注塑制造领域的运用
    【MyBatis】通过分页助手完成分页查询
    图的最小生成树算法(图解+代码)| 学不会来看我系列
    探花交友_第8章_搜附近以及探花功能实现
    nginx 做转发处理,指定目录访问和tp同级的目录
    模型训练时loss震荡严重的几个解决方案
    Linux篇16进程信号第二部分
    14.11 Socket 基于时间加密通信
  • 原文地址:https://blog.csdn.net/u012861705/article/details/132831252