如果值存在,则选择列名称

时间:2015-04-11 21:09:09

标签: mysql

我想选择值1且ID等于1的列名称。我怎样才能做到这一点?

例如,如果行中存在1,我将如何选择列名?我想要实现的预期最终结果(假设我选择了ID 1)将是Allowed_2Allowed_3

以下是我在最后一段中谈到的表格: http://i.stack.imgur.com/PL8Jr.png

1 个答案:

答案 0 :(得分:0)

通常不需要从数据库中检索列名,而是希望处理表中的值。列名称只是标识符,因此您可以链接代码和数据库,但除此之外,它们不包含任何含义。

因此,对于您的示例,如果您想知道允许标识为1的用户的内容,您可以执行以下查询:

SELECT Allowed_2, Allowed_3 FROM tableName WHERE id = 1

然后像这样使用它(PHP中的示例):

// database connection, query, etc.
$row = $result->fetch_assoc();

if ($row['Allowed_2'] === '1') { 
    echo 'user can do action 2'; 
}

if ($row['Allowed_3'] === '1') { 
    echo 'user can do this'; 
}

如果您的游戏变得越来越复杂,拥有更多用户,请考虑引入角色(例如管理员,用户,游戏管理员等)。您可能有一个名为role的表,它有一个id,一个名称,然后是不同的Allowed_X列。然后,您可以将每个用户映射到一个或多个角色,并以这种方式管理它们,这使得管理用户变得更加容易。