5

in forINを使用して SQL クエリで実行する方法は? IDがあり、学生テーブルのすべての行を更新する必要があります (新しい値に設定するため)。ループを避けたい、新しい値 ( _id)ステートメントで教員を挿入したときに取得します。pqxx を使用し て反復可能な構造を渡したり、クエリを作成したりすることはまったく可能ですか?pqxxc++postgresqlvector<long>faculty_idfacultyprepared INSERTprepared IN

void prepareChangeFaculty(connection_base &c){
    const std::string sql =
      "UPDATE students SET faculty_id=$2 WHERE id IN $1"; // here is a problem
    c.prepare("change_faculty", sql);
}

$1 更新する必要がある行の ID のベクトルが好きです

4

2 に答える 2

0

C ++ 11で(std::string と int を連結する方法は? )

string a="";
for (int k=0;k<myVector.size();k++){
    a += string(myVector[k]);
    if (k<myVector.size()-1){
        a += ",";
    }
}

std::string sql = "UPDATE students SET faculty_id=$2 WHERE id IN (" + a + ")";
于 2014-05-26T17:52:50.737 に答える