Php mysql多个查询或多个';或';操作员

Php mysql多个查询或多个';或';操作员,php,mysql,operators,mysqli-multi-query,Php,Mysql,Operators,Mysqli Multi Query,假设我有这张桌子: img_id, img_author, img_path 1 | BillyDoe | img1.jpg 2 | BillyDoe | img2.jpg 3 | BillyDoe | img3.jpg 我运行了另一个符合某些特定标准的查询 该查询返回一个数组,其中包含许多img_作者姓名,如: 比丽多,吉尔多,约翰多等 我要做的第二件事是得到所有的图像 从与作者姓名匹配的图像表中 创建一个包含所有作者的循环会更好吗 命名上一个返回的查询,并像这


假设我有这张桌子:

img_id, img_author, img_path
1     | BillyDoe  | img1.jpg
2     | BillyDoe  | img2.jpg
3     | BillyDoe  | img3.jpg
我运行了另一个符合某些特定标准的查询 该查询返回一个数组,其中包含许多img_作者姓名,如: 比丽多,吉尔多,约翰多等

我要做的第二件事是得到所有的图像 从与作者姓名匹配的图像表中

创建一个包含所有作者的循环会更好吗 命名上一个返回的查询,并像这样多次运行查询

select img_path from images_table where img_author = $curr_author_name
或 我应该创建一个自定义函数,将所有作者姓名和 使用多个“或”运算符运行单个sql查询,如下所示:

select img_path from images_table where img_author = BillyDoe or img_author =  JillDoe or img_author =  JohnDoe ... x100 times
我做这两件事时会有任何性能损失/收益吗 两条路?或者有更好的选择,比如多查询等等。 总是谈论性能问题,哪种方法会减少资源 激烈的


谢谢。

我将使用联接进行单个查询,这样您就可以查询要查找的img_作者姓名,然后根据此表进行联接以获取img_路径信息

您还没有显示您提到的用于确定作者姓名的第一个查询,因此我无法给出具体示例。但该查询可能如下所示:

SELECT
    it.img_path AS img_path
FROM
    whatever_table_is_in_your_first_query AS x
INNER JOIN
    img_table AS it
ON x.author = it.img_author
WHERE
   ... /* whatever criteria you use to get author names */

在嵌套循环中执行查询绝对应该被视为一种需要避免的反模式,除非您有非常具体的理由这样做,并且理解性能权衡。

非常确定您需要在那里转义这些字符串,除非
BillyDoe
是一列,否则as
img\u author=BillyDoe
不是有效的SQL。第一个查询是在同一个表上还是在不同的表上找到作者?请使用一个带有
s的查询。最好使用author
id
s,并使用
IN()
子句。谢谢您的回答!