比方说,我有这个表:MySQL的多个查询或多个“或”运营商
img_id, img_author, img_path
1 | BillyDoe | img1.jpg
2 | BillyDoe | img2.jpg
3 | BillyDoe | img3.jpg
我运行符合某些特定指标分析 和查询将返回类似于数组许多img_author名称另一个查询: BillyDoe,JillDoe,JOHNDOE等等
我会做的第二件事是让所有从图像表匹配的作者名的图像
会是最好创建一个循环的所有作者 名之前的查询返回,并多次运行查询,像这样
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_author = BillyDoe'不是有效的SQL,除非'BillyDoe'是一个列。 – tadman
是在同一个表格或不同的表格上查找作者的第一个查询吗? –
使用'OR's使用一个查询。有作者'id's并使用可能使用'IN()'子句会更好。 – AbraCadaver