Mysql

過濾一列以僅顯示兩個值

  • June 25, 2022

我有一個棒球數據集,對於該列,teamid我只想檢索 2 支球隊。

這是我的程式碼:

SELECT teamID, yearID, salary
FROM   Salaries 
WHERE  s.teamID LIKE '%HOU%' AND  '%TEX%'
GROUP BY yearID
ORDER BY yearID ASC;

我的程式碼只顯示了 TEX 結果。

數據:工資表

預期結果

您的查詢有兩個問題。首先,(teamID,salary)在功能上可能不依賴於 yearID,因此您不能單獨按 yearID 分組。在這種情況下,您可能根本不需要 group by 子句。其次,WHERE s.teamID LIKE ‘%HOU%’ AND ‘%TEX%’ 可能沒有按照您期望的方式進行評估。我懷疑你想要:

WHERE  s.teamID LIKE '%HOU%' OR s.teamID LIKE '%TEX%'

請注意,您需要兩次 LIKE 謂詞和一個邏輯運算符 (OR) 來組合結果。

SELECT teamID, yearID, salary
FROM   salaries s
WHERE  s.teamID LIKE '%HOU%' OR s.teamID LIKE '%TEX%'
ORDER BY yearID ASC;

teamID  yearID  salary  s.teamID LIKE '%HOU%'   s.teamID LIKE '%TEX%'
HOU 2013    100 1   0
TEX 2015    300 0   1

小提琴

引用自:https://dba.stackexchange.com/questions/313762