2017-10-07 82 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

看起来像这样可能会诀窍,但我认为这有一些更简单的解决方法,无论如何:)稍后会检查它是否适用于我 –

相关问题