mysql - SQL - SELECT 任何列具有特定值的行

标签 mysql sql

我需要创建一个 SELECT 查询,该查询将返回至少 X 列之一具有特定值的行。

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 来说是可能的吗?

最佳答案

如果我理解的话:

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;

您可能需要重新访问数据结构,因此每个团队玩家各有一行。

关于mysql - SQL - SELECT 任何列具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46623625/

相关文章:

php - 如何只查询 ID 3、4、5 和 1?

PHP/SQL JOIN 2 个表并获得平均分

php - 准备好的陈述 + PDO

php - MySQL 返回结果的时间太长

mysql - 如何在 phpmyadmin 中导出比较结果?

sql - 动态 SQL - EXEC(@SQL) 与 EXEC SP_EXECUTESQL(@SQL)

sql - SELECT 中的 MSSQL cast( [varcharColumn] to int) 在 WHERE 子句过滤掉错误值之前执行

SQL Server 2008 筛选索引

mysql - mysql查询中 "where(n) "到底是什么意思

php - 组织州和城市并以某种方式显示 PHP