比方說,我有這個表: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