这个项目可以分为两个部分:

  1. 输入insert语句,解析出表名和字段值。

  2. 根据表名和字段值生成select语句。

下面是一个简单的实现:

#include <QCoreApplication>
#include <QString>
#include <QStringList>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString insertSql = "INSERT INTO mytable (id, name, age) VALUES (1, 'John', 30)";

    // 解析表名和字段值
    QString tableName;
    QStringList fieldValues;
    int start = insertSql.indexOf("INTO ") + 5;
    int end = insertSql.indexOf("(", start);
    tableName = insertSql.mid(start, end - start).trimmed();
    start = insertSql.indexOf("(", end) + 1;
    end = insertSql.indexOf(")", start);
    QString fields = insertSql.mid(start, end - start);
    fieldValues = fields.split(",");

    // 生成select语句
    QString selectSql = "SELECT * FROM " + tableName + " WHERE ";
    for (int i = 0; i < fieldValues.length(); i++) {
        QString fieldValue = fieldValues.at(i).trimmed();
        QStringList parts = fieldValue.split("=");
        QString fieldName = parts.at(0).trimmed();
        QString fieldValue2 = parts.at(1).trimmed();
        if (i > 0) {
            selectSql += " AND ";
        }
        selectSql += fieldName + " = " + fieldValue2;
    }

    qDebug() << "Insert SQL: " << insertSql;
    qDebug() << "Select SQL: " << selectSql;

    return a.exec();
}

这个程序可以将以下insert语句:

INSERT INTO mytable (id, name, age) VALUES (1, 'John', 30)

转换成以下select语句:

SELECT * FROM mytable WHERE id = 1 AND name = 'John' AND age = 30

原文地址: https://www.cveoy.top/t/topic/qti 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录