PDO选择包含未知列的查询?

时间:2016-02-21 19:09:17

标签: php mysql

我不确定如何在主题中更好地描述我的问题...

我有一个看起来像这样的表:

    $sql = "CREATE TABLE games (
            id INT(5) AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR (255),
            player_1_id INT (3),
            player_1_status BOOLEAN,
            player_2_id INT (3),
            player_2_status BOOLEAN,
            player_3_id INT (3),
            player_3_status BOOLEAN
    )"

我需要一个类似的查询:

$stmt = $this->connection->prepare("
    SELECT id, name, turn
    FROM games
    WHERE player_1_id = :value1
    OR  player_2_id = :value1
    OR  player_3_id = :value1
");

但另外,我想选择列“player_x_status”,具体取决于找到的“player_x_id”等于:value1。 我真的不知道如何更好地描述我的问题,这里缺乏条款。

有人可以建议吗?

1 个答案:

答案 0 :(得分:5)

每次创建名为something_N 的字段时,您都可以确定您做错了。

你需要做的是另一张表来存储所有具有状态的玩家,比如

  • game_id
  • player_id
  • 状态

您可以毫无问题地为任何玩家选择状态。

这就是关系数据库的工作方式。