我正在尝试根据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形式的行?
谢谢!
答案 0 :(得分:0)
在应用::uuid
类型强制转换之前,您需要将参数包装在括号中,以便准备好的语句可以正确地插入参数。
SELECT * FROM users WHERE uid = ($1)::uuid
您也可以将列本身强制转换为text
,但是由于查询必须强制转换每一行,因此性能较低。
SELECT * FROM users WHERE uid::text = $1