Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Postgres-组合选择和更新_Php_Postgresql_Pdo - Fatal编程技术网

Php Postgres-组合选择和更新

Php Postgres-组合选择和更新,php,postgresql,pdo,Php,Postgresql,Pdo,我在Postgres数据库中有一个包含消息的表。 当用户读取一条消息或一组属于一起的消息时,我收集消息ID,在SELECT查询之后,将read标志更新为TRUE 所以它只是两个简单的查询,仍然对内存友好。但是我想知道是否可以通过组合SELECT和UPDATE查询来改进它?我使用PHP/PDO进行数据库访问 有PostgresUPDATE语句的最新版本: UPDATE msg_tbl SET read = TRUE WHERE msg_id = ? RETURNING *; 但是,如果所

我在Postgres数据库中有一个包含消息的表。 当用户读取一条消息或一组属于一起的消息时,我收集消息ID,在SELECT查询之后,将read标志更新为TRUE

所以它只是两个简单的查询,仍然对内存友好。但是我想知道是否可以通过组合
SELECT
UPDATE
查询来改进它?我使用PHP/PDO进行数据库访问

有Postgres
UPDATE
语句的最新版本:

UPDATE msg_tbl
SET    read = TRUE
WHERE  msg_id = ?
RETURNING *;

但是,如果所有行实际上都需要
更新
,那么这只是一种改进。如果一些已经有了
read=TRUE
,这将导致空更新比
SELECT
和一个单独的
UPDATE
更昂贵,并附加了一个
WHERE read=FALSE

您想要的内容,那么,是一个单独的查询来执行
选择
更新
?您不能混合读写语句。您可以这样做,但没有真正的收益