gpt4 book ai didi

php - 使用 WHERE 子句检查记录是否接收不同的值

转载 作者:行者123 更新时间:2023-11-30 23:09:34 25 4
gpt4 key购买 nike

我想检查具有给定主键的数据库记录中的一堆值是否与某些用户提供的值不同。

一种方法是从数据库中检索值并使用 PHP 将它们与用户提供的值进行比较。

另一种方法是直接使用DB来比较值,如果返回一条记录,就知道是完全匹配的:

SELECT COUNT(*)
FROM t
WHERE pk=123
AND c1=321
AND c2=222
...
AND c8=555
AND c9=434;

使用一种方法优于另一种方法有什么优点或缺点吗?数据库是否足够聪明,可以在其他值之前过滤 pk?

附言。基于此查询,如果发生更改,我将更新新值并更新 date_changed 列和 changed_by_user 列。由于我也在更新最后两列,因此无法使用 PDOStatement::rowCount()。我错过了什么吗?

最佳答案

Is there any pros or cons from using one approach over the other? Will the DB be smart enough to filter on the pk before the other values?

您绝对应该在查询中这样做。 DBMS 足够聪明,可以识别 where 子句中的 pk 字段,实际上它会在处理之前进行查询优化和 where 子句重新排序。此属性是设计使然和基础 datastructures旨在像那样工作。

关于php - 使用 WHERE 子句检查记录是否接收不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com