2017-10-07 88 views
0

的我需要創建一個SELECT查詢將返回行,其中X列中的至少一個是一定的價值。SQL - 選擇行其中任何列是一定的價值

id name teamid  player1 player2 player3 ... player12 

1  Jane 2   43   46   12   ... 36 
2  Mathew 6   12   56   18   ... 42 
3  Shaun 8   53   55   12   ... 62 
4  Jane 1   1   53   19   ... 34 
5  Eugene 3   23   34   13   ... 44 

在這個表,我有14列(ID,姓名和PLAYER1到player12),並希望SELECT行的具體teamid,讓我們說teamid='2',並返回列的,在此例如包含數12名稱行。

這甚至可能與MySQL?

+0

修復你的破架構 – Strawberry

+0

@Strawberry怎麼弄它壞?玩家是虛擬的人物角色,並填寫一個人的球隊,他已經來接他們,不認爲還有比這其實 –

+0

更好的解決辦法一個單獨的表存儲teamplayers將是不可估量的改進 – Strawberry

回答

0

如果我的理解,則:

select t.*, 
     (case when player1 = 12 then 'player1' 
      when player2 = 12 then 'player2' 
      . . . 
      when player12 = 12 then 'player12' 
     end) player_with_12 
from t 
where t.teamid = 2; 

你可能想重溫你的數據結構,所以你必須每teamplayer一行。

+0

看起來像這樣可能會訣竅,但我認爲這有一些更簡單的解決方法,無論如何:)稍後會檢查它是否適用於我 –

相關問題