簡體   English   中英

sql IN 關鍵字和多個輸入列 - 如何組合成一個列

[英]sql IN keyword and multiple input columns - how to combine into a single column

我有一些 sql 沒有做我想要的。 我希望CONCAT語句生成一個 ID 號列表。 現在我得到一列,其中包含“數字,數字”。 我想要一列整數。 我正在使用IN關鍵字。

SELECT DISTINCT visible
     , num
     , date_now
     , show_message
     , show_exercise
     , show_workout
     , picture_large
  FROM feed 
 WHERE feed.from_user_id IN 
    ( SELECT DISTINCT 
      CONCAT(friends.user_id, ', ', friends.friend_user_id ) 
      FROM friends 
      WHERE  friends.user_id = 1 
        OR friends.friend_user_id = 1 
    ) 
ORDER BY feed.date_now DESC 

如何正確使用多列作為輸入的 IN 關鍵字?

您正在尋找 function group_concat() 而不是 concat() 並且您希望按將生成具有所需值的單行的任何內容進行分組。

不確定我是否正確理解了您的問題。 但這就是你要找的嗎?

SELECT DISTINCT 
visible, num, date_now, show_message, show_exercise, show_workout, picture_large
FROM feed WHERE feed.from_user_id IN 
    ( SELECT friends.user_id
      FROM friends 
      WHERE  friends.user_id = 1 
union 
SELECT DISTINCT 
     friends.friend_user_id 
      FROM friends 
       friends.friend_user_id = 1 
    ) 
ORDER BY feed.date_now DESC 

暫無
暫無

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

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