QString in sqlite select

QString in sqlite select

本文关键字:select sqlite in QString      更新时间:2023-10-16

我想搜索名为x的字符串。

QString x=abc->text();
QSqlQuery qry("SELECT nazwa FROM piosenki WHERE nazwa like'%x%' ");

x 被视为单个字符,不像 abc->text(); 我能做些什么来选择QString x?对我来说重要的是 SQlite LIKE 子句,因为我想从我的数据库中挑选所有类似于 abc->text() 的子句。

一个简单的

选择是使用.arg()

QString x=abc->text();
QSqlQuery query(QString("SELECT nazwa FROM piosenki WHERE nazwa like'%%1%'").arg(x));
if(query.exec()){
    int fieldNo = query.record().indexOf("nazwa");
    while (query.next()) {
        qDebug()<< query.value(fieldNo).toString();
    }
}

或与prepare()bindValue()

QString x=abc->text();
QSqlQuery query;
query.prepare("SELECT nazwa FROM piosenki WHERE nazwa LIKE :nazwa");
query.bindValue(":nazwa", "%" +x + "%");
if(query.exec()){
    int fieldNo = query.record().indexOf("nazwa");
    while (query.next()) {
        qDebug()<< query.value(fieldNo).toString();
    }
}