"UPDATE table_name SET w = $1, x = $2, z = $4 WHERE y = $3 RETURNING *",

does not do the same as

"UPDATE table_name SET w = $1, x = $2, y = $3, z = $4 RETURNING *",

It’s 2 am and my mind blanked out the WHERE, and just wanted the numbers neatly in order of 1234.

idiot.

FML.

  • o11c@programming.dev
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    11 months ago

    This is about the one thing where SQL is a badly designed language, and you should use a frontend that forces you to write your queries in the order (table, filter, columns) for consistency.

    UPDATE table_name WHERE y = $3 SET w = $1, x = $2, z = $4 RETURNING *
    FROM table_name SELECT w, x, y, z