gpt4 book ai didi

PHP 条件 vs MySQL 条件

转载 作者:行者123 更新时间:2023-11-29 03:00:13 29 4
gpt4 key购买 nike

如果在数据库中找到用户输入的键,我将尝试显示“表”中的数据。目前我已将其设置为让数据库检查 key 是否存在,如下所示:

//Select all from table if a key entry that matches the user specified key exists
$sql = 'SELECT * FROM `table` WHERE EXISTS(SELECT * FROM `keys` WHERE `key` = :key)';
//Prepare the SQL query
$query = $db->prepare($sql);
//Substitute the :key placeholder for the $key variable specified by the user
$query->execute(array(':key' => $key));

//While fetched data from the query exists. While $r is true
while($r = $query->fetch(PDO::FETCH_ASSOC)) {
//Debug: Display the data
echo $r['data'] . '<br>';
}

这些并不是程序中唯一需要的 SQL 语句。稍后,需要进行 INSERT 查询以及可能的另一个 SELECT 查询。

现在,根据我的理解,使用 WHERE EXISTS 并不总是有效的。但是,将查询拆分为两个单独的语句并让 PHP 在查找匹配键时检查是否返回任何行是否更有效?

我看了一下 similar question ,但是它在更大范围内比较多个语句,而不是单个语句与单个条件。

最佳答案

@MarkBaker Join 不必比 exists 语句快。如果查询优化器发现更好的方法来完成查询,它能够实时重写查询。 Exists 语句比 join 更具可读性。

直接在 PHP 中获取所有数据并进行过滤总是一个坏主意。如果您的表增长到数百万条记录怎么办? MySQL 将为您找到最佳执行计划。如果要提高性能,它将自动缓存查询。

换句话说,就我们现在看到的代码而言,您所做的一切都是正确的。为了进一步分析,向我们展示您的所有查询。

关于PHP 条件 vs MySQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24845222/

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