获取参数的最大值或最小值到行值postgres

时间:2017-07-25 21:57:22

标签: php postgresql

对于参数化的postgresql查询,如何返回行中的值或提供的参数。

我有一个表格(我们称之为foo),其中有三列:idmaximumminimum

我想选择行,以便max和min具有我提供的天花板或地板。直接在postgresql中,我可以这样选择:

SELECT
   id,
   GREATEST(minimum, 5),
   LEAST(maximum, 10)
FROM foo

因此,每行只返回5到10之间的值。

然而,将其转换为在我的PHP代码中使用时:

$floor = 5;
$ceiling = 10;
$query = 'SELECT id, GREATEST(minimum, $2), LEAST(maximum, $1) FROM foo';
$parameters = [ $ceiling, $floor];
$result = pg_query_params($query, $parameters);

这不起作用,因为参数需要位于查询的WHERE子句中。如何编写查询以便我能够正确传递参数?

1 个答案:

答案 0 :(得分:0)

你可以使用Heredoc:

$floor = 5;
$ceiling = 10;

$query = <<<SQL
SELECT 
    id, 
    GREATEST(minimum, $floor),
    LEAST(maximum, $ceiling)
FROM 
    foo
SQL;

$result = pg_query_params($query);

供参考,见: