我正在尝试根据 UUID 选择用户:
const client = await this.pg.connect()
const { rowsAct } = await client.query(`SELECT * FROM users WHERE uid=$1`, [
userUUID
])
我也试过没有变量:
const client = await this.pg.connect()
const { rowsAct } = await client.query(`SELECT * FROM users WHERE uid=$1`, [
'4fcf0ca3-4e26-40a9-bbe5-78ff8fdb6e0f'
])
我尝试使用::uuid 转换,但也许我做错了。返回的 rowsAct
始终未定义。
我验证了 userUUID
变量已被填充并且是一个有效的 uuid:
console.log(typeof userUUID)//字符串
我做错了什么?我怎样才能正确地选择一行形式的 UUID?
谢谢!
最佳答案
在应用 ::uuid
类型转换之前,您需要将参数括在括号中,以便准备好的语句可以正确插入参数。
SELECT * FROM users WHERE uid = ($1)::uuid
您也可以将列本身转换为 text
,但它的性能较低,因为查询必须转换每一行。
SELECT * FROM users WHERE uid::text = $1
关于node.js - 如何从 Postgres 中的准备好的语句中选择 UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52980326/