php - PDO 选择具有未知列的查询?

标签 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。 我真的不知道如何更好地描述我的问题,这里缺少术语。

有人可以建议吗?

最佳答案

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

你要做的是另一个表来存储所有球员的状态,比如

  • 游戏编号
  • 玩家编号
  • 状态

您将能够毫无问题地为任何玩家选择状态。

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

关于php - PDO 选择具有未知列的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540663/

相关文章:

php - 如何使用扩展类的数据库连接错误 "Undefined variable: conn in ..."

php - 解释这段代码在 PHP 中是如何工作的?

php - 按纬度/经度对 MySQL 查询进行排序

MySQL 计算一列的唯一性,而其他列在 Group By 中具有单个值

php - 从文本文件php mysql将数据插入多行

php - 通过 JSON、JQuery、PHP 传递特定信息

javascript - 为什么当发送 AJAX req.js 的函数时,JS 生成的表单会在表单生成后立即触发 AJAX 请求。绑定(bind)到onsubmit事件?

mysql - 将 mysql 列输出到文本文件中

mysql - 如何从最大日期子查询列表中选择最大日期

mysql - 如何内连接表?