我正在尝试根据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(//string
我做错了什么?如何正确选择行形式是 UUID?
谢谢!
在应用::uuid
类型强制转换之前,您需要将参数括在括号中,以便预准备语句可以正确插入参数。
SELECT * FROM users WHERE uid = ($1)::uuid
还可以将列本身强制转换为text
但它的性能较低,因为查询必须强制转换每一行。
SELECT * FROM users WHERE uid::text = $1