mysql 多个查询或多个 'or' 运算符
mysql multiple queries or multiple 'or' operators
假设我有这个 table:
img_id, img_author, img_path
1 | BillyDoe | img1.jpg
2 | BillyDoe | img2.jpg
3 | BillyDoe | img3.jpg
我 运行 另一个符合某些特定条件的查询
该查询 returns 一个包含许多 img_author 名称的数组,例如:
BillyDoe、JillDoe、JohnDoe 等...
我要做的第二件事是获取所有图像
图片 table 匹配作者姓名
要不要和所有作者一起创建一个循环更好
命名先前返回的查询,并多次 运行 查询
select img_path from images_table where img_author = $curr_author_name
或者
我应该创建一个自定义函数,它将加入所有作者姓名和
运行 具有多个 'or' 运算符的单个 sql 查询,如下所示:
select img_path from images_table where img_author = BillyDoe or img_author = JillDoe or img_author = JohnDoe ... x100 times
我会有任何表现吗loss/gain做这些中的任何一个
两种方式?或者有更好的选择,如多查询等。
总是明智地谈论性能,哪种方法会占用更少的资源
激烈?
谢谢。
我会用连接做一个查询,这样你就可以查询你正在寻找的 img_author 名字,然后连接这个 table 得到 img_path信息。
您没有显示您提到的第一个确定作者姓名的查询,因此我无法提供具体示例。但是该查询可能如下所示:
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 */
绝对应该将在嵌套循环中进行查询视为一种应避免的反模式,除非您有非常具体的理由这样做并了解性能权衡。
假设我有这个 table:
img_id, img_author, img_path
1 | BillyDoe | img1.jpg
2 | BillyDoe | img2.jpg
3 | BillyDoe | img3.jpg
我 运行 另一个符合某些特定条件的查询 该查询 returns 一个包含许多 img_author 名称的数组,例如: BillyDoe、JillDoe、JohnDoe 等...
我要做的第二件事是获取所有图像 图片 table 匹配作者姓名
要不要和所有作者一起创建一个循环更好 命名先前返回的查询,并多次 运行 查询
select img_path from images_table where img_author = $curr_author_name
或者 我应该创建一个自定义函数,它将加入所有作者姓名和 运行 具有多个 'or' 运算符的单个 sql 查询,如下所示:
select img_path from images_table where img_author = BillyDoe or img_author = JillDoe or img_author = JohnDoe ... x100 times
我会有任何表现吗loss/gain做这些中的任何一个 两种方式?或者有更好的选择,如多查询等。 总是明智地谈论性能,哪种方法会占用更少的资源 激烈?
谢谢。
我会用连接做一个查询,这样你就可以查询你正在寻找的 img_author 名字,然后连接这个 table 得到 img_path信息。
您没有显示您提到的第一个确定作者姓名的查询,因此我无法提供具体示例。但是该查询可能如下所示:
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 */
绝对应该将在嵌套循环中进行查询视为一种应避免的反模式,除非您有非常具体的理由这样做并了解性能权衡。