Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 使用WHERE子句检查记录是否接收到不同的值_Php_Mysql_Sql_Pdo - Fatal编程技术网

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

Php 使用WHERE子句检查记录是否接收到不同的值,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我希望检查具有给定主键的DB记录中的一组值是否与某些用户提供的值不同 一种方法是从数据库中检索值,并使用PHP将它们与用户提供的值进行比较 另一种方法是直接使用DB来比较值,如果返回一条记录,您就知道有一个精确的匹配: SELECT COUNT(*) FROM t WHERE pk=123 AND c1=321 AND c2=222 ... AND c8=555 AND c9=434; 使用一种方法比使用另一种方法有什么优点或缺点?DB是否足够聪明,可以在其他值之前过滤pk 另外,根据这个查询

我希望检查具有给定主键的DB记录中的一组值是否与某些用户提供的值不同

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

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

SELECT COUNT(*)
FROM t
WHERE pk=123
AND c1=321
AND c2=222
...
AND c8=555
AND c9=434;
使用一种方法比使用另一种方法有什么优点或缺点?DB是否足够聪明,可以在其他值之前过滤pk

另外,根据这个查询,如果某些内容发生了更改,我将更新新值,并更新date_changed列和changed_by_user列。因为我也在更新最后两列,所以不能使用PDOStatement::rowCount。我错过什么了吗

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


您在查询中绝对应该这样做。DBMS足够聪明,可以识别where子句中的pk字段,事实上,它将在处理之前进行查询优化和where子句重新排序。此属性是按设计的,基础属性也是按此设计的。

需要注意的一点是,如果您将字符串值与数据库进行比较,它会不区分大小写。