为什么pg-promise
在用SELECT * ...
查询时返回一个已解析的对象,但是在指定SELECT (given_name, family_name, photo) ...
的选择列时却返回了一个未解析的行?
选择所有列:
db.oneOrNone(`SELECT * FROM $1~ WHERE id=$2`,[psql.tables.user, uid]);
> {"id":"1","given_name":"Michael","family_name":"Douglas","email":"mike.dougly@douglas.com","password":"9511393558AC7202E61EB7BA9A2D3FC1FA9CA151AFF4271C1475BD11A7BE5DC72DC8E0B2E8EA3D44DA476DB43728E1A2A4BCB08A63B2E724603B9EEBD268CE5A","birthdate":"1978-01-01T00:00:00.000Z","photo":"https://somefakewebsite.com/dougly.jpg"}
选择列的子集:
db.oneOrNone(`SELECT (given_name, family_name, photo) FROM $1~ WHERE id=$2`,[psql.tables.user, uid]);
> {"row":"(Michael,Douglas,https://somefakewebsite.com/dougly.jpg)"}
是否有一种方法可以告诉pg-promise像第一种情况一样解析列名?
答案 0 :(得分:1)
...指定选择列时返回未解析的行
您不仅要指定列,还要将它们放在括号中,这告诉PostgreSQL返回元组,这就是您要得到的。而且,如果您在pgAdmin中运行查询,则会看到相同的内容。
是否有一种方法可以告诉pg-promise像第一种情况一样解析列名?
删除括号,就是这样。