Mysql
過濾一列以僅顯示兩個值
我有一個棒球數據集,對於該列,
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