gpt4 book ai didi

php - MySQL:连接(2 个表)与单个查询(1 个表)

转载 作者:可可西里 更新时间:2023-11-01 07:06:36 24 4
gpt4 key购买 nike

PHP 中,我有一个11 人的数组,其中只给出了每个人的 ID:

$persons = array(1, 3, 39, 72, 17, 20, 102, 99, 77, 2, 982);

在我的 MySQL 数据库 中,有一张表包含每个人的详细信息:

TABLE personInfo
- ID (integer)
- name (string)
- birth date (timestamp)
- weight (decimal)
- ...

问题:

现在,我想为 PHP 数组中的每个 ID 选择匹配的名称。我只能想象两种解决方案:

<强>1。 for 循环:

foreach ($persons as $person) {
$result = mysql_query("SELECT name FROM personInfo WHERE id = ".$person);
}

<强>2。逻辑运算符 OR

$result = mysql_query("SELECT name FROM personInfo WHERE id = 1 OR id = 3 OR id = 39 OR ...");

这两种解决方案都很慢,不是吗?

但是如果我有另一个包含 PHP 数组 ID 的 MySQL 表......

TABLE ids
- ID (integer)

...我可以使用联接来进行非常快速的 MySQL 查询,对吧?

$result = mysql_query("SELECT a.ID, b.name FROM ids AS a JOIN personInfo AS b ON a.ID = b.ID");

问题:

到目前为止这一切都正确吗?如果是:为什么会这样?如果我有第二个表,MySQL 查询会更快吗?只有一张 table ,速度非常慢?解决我的问题的最快方法是什么(选择与 PHP 数组的 ID 匹配的名称)?

最佳答案

如果您有很多 ID(数百个或更多),将值输入临时表并加入它实际上会更快。

你可能想阅读这篇文章:

关于php - MySQL:连接(2 个表)与单个查询(1 个表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5882444/

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