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

  • 相关阅读:
    开区服务器,老是出现玩家卡顿,是什么问题
    NeurIPS 2022 | 中山大学&华为诺亚方舟联合提出:快速适应统一自动驾驶场景多任务学习的训练范式
    (六)Vue之数据代理
    vue3学习之路-准备工作
    计算机网络 实验二 交换机的基本配置
    vue和react的相同点和不同点
    记录项目安装依赖时报错“Cannot read property ‘pickAlgorithm‘ of null“
    使用 LSTM 进行多变量时间序列预测--问题汇总
    Java知识梳理 第四章 二进制
    Android 设置中增加 OTG 开关以方便调试
  • 原文地址:https://blog.csdn.net/u012861705/article/details/132831252