三个查询每个返回 1 行

0 postgresql

所以..我有:

3 个数据库查询每个返回 1 行 ....

SELECT value FROM ja_settings WHERE varname='clickatel_api_id' 
SELECT value FROM ja_settings WHERE varname='clickatel_user' 
SELECT value FROM ja_settings WHERE varname='clickatel_pass'
Run Code Online (Sandbox Code Playgroud)

可以改写为:

SELECT value, 'clickatel_api_id' AS name FROM ja_settings WHERE varname='clickatel_api_id'
UNION ALL
SELECT value, 'clickatel_user' AS name FROM ja_settings WHERE varname='clickatel_user'
UNION ALL
SELECT value, 'clickatel_pass' AS name FROM ja_settings WHERE varname='clickatel_pass' ;
Run Code Online (Sandbox Code Playgroud)

1 db 查询返回 3 行......(还有比联合更好的方法......我知道)。这将消除所有页面上的 2 db 服务器往返。

我怎么能写这个查询?谢谢!

小智 6

我猜你想要这样的东西:

SELECT value, varname
FROM ja_settings 
WHERE varname IN ('clickatel_api_id', 'clickatel_user','clickatel_pass');
Run Code Online (Sandbox Code Playgroud)