私は試した
QSqlQuery query;
query.prepare("DELETE FROM names WHERE id_col = :ID OR id_parent = :ID");
query.bindValue(":ID", idVal);
query.exec();
idValが2回バインドされると仮定しますが、このクエリを実行すると、id_parent = idValの行のみが削除され、id_col=idValは削除されません。したがって、2回目だけidValがクエリにバインドされました。
に書き直すと
QSqlQuery query;
query.prepare("DELETE FROM names WHERE id_col = ? OR id_parent = ?");
query.bindValue(0, idVal);
query.bindValue(1, idVal);
query.exec();
すべてが期待どおりに機能しました。
QSqlQueryで1つの名前付きプレースホルダーを数回使用する方法ですか?