MySQL的。我可以选择带地图的行吗?

时间:2014-03-03 19:34:03

标签: mysql

所以,我有一个数组id =>时间和一个表。

| id | text | created_at |

如何在一个查询中获取CREATED_AT> array ['id']和ID = id的所有行?

我可以这样做,

  foreach (array as $key=>$value) {
    query("SELECT * FROM table WHERE CREATED_AT>$value and ID=$key");
  }

但我想把它全部放在一个查询中。

示例数据:

| id | text | created_at |
--------------------------
| 1  | aaaa | 123        |
| 2  | bbbb | 124        |
| 1  | cccc | 122        |
| 3  | dddd | 125        |
| 1  | eeee | 125        |

array( '1' => 123, '2' => 125, '3' => 124);

查询应返回此行:

| 1 | aaaa | 123 |
| 3 | dddd | 125 |
| 1 | eeee | 125 |

1 个答案:

答案 0 :(得分:1)

你可以做很长的一系列

$my_query = "SELECT * FROM table WHERE";
$counter = 0;
foreach (array as $key=>$value) {
    if ($counter > 0)
        $my_query += " OR ";
    $my_query += "(CREATED_AT>$value and ID=$key)";
    $counter++;
}

然而这很难看。我不建议这样做。除此之外,我认为在一个查询中没有简单的方法可以做到这一点。如果您只查询一批ID,那将很容易,但考虑到这两个标准,我无法想到任何其他方式。

我认为在for循环中执行它并不是一个坏主意......它绝对比我上面给出的代码更具可读性。