所以,我有一个数组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 |
答案 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循环中执行它并不是一个坏主意......它绝对比我上面给出的代码更具可读性。