簡體   English   中英

匹配查詢中數組的元素

[英]Match the elements of array in query

我只想選擇$arr_tags$arr_tags匹配所有array_elements with tags_is_tags 例如在這種情況下將輸出0個帖子,因為一個數組元素與tags_id_tags不匹配

我該怎么做?

$arr_tags = array("16", "17", "36", "543"); // the dimension is not always the same

post_id_post        tags_id_tags    
    282                      16     
    282                      17     
    282                      36 
    282                      546 

我有此代碼,但查詢尚未完成。

            $sql = $db -> prepare("
                SELECT post_id_post 
                FROM posts
                // ...
            ");

            $sql -> bind_param('s', $val);
            $sql -> execute();
            $sql -> bind_result($d_post);

謝謝你的時間

  SELECT post_id_post
    FROM posts
   WHERE tags_id_tags IN ("16", "17", "36", "543")
GROUP BY post_id_post
  HAVING COUNT(*) = 4

您將所有必需標簽的ID放在IN子句中,並將COUNT(*) = 4表達式中的數字更改為傳遞的標簽數

在我看來,您想知道如何提出正確的問題之多。 這里的魔術詞是“關系划分”。

它是Codd 關系代數中的運算符之一,此后提出了幾種變體。 最近, 克里斯·伊達特( Chris Date )提出用圖像關系代替整個概念。

SQL沒有明確的除法運算符。 使用其他運算符有多種解決方法,最合適的方法取決於您的要求,包括精確除法或除法除法,以及如何處理空除數。 然后是通常的注意事項:SQL產品和版本,性能,個人風格和品味等。

這里有幾篇文章可以幫助您進行以下選擇:

關於關系划分的理解

分開的立場:關系部門的SQL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM