gpt4 book ai didi

php - 将查询结果限制为特定行

转载 作者:行者123 更新时间:2023-11-29 11:50:30 25 4
gpt4 key购买 nike

假设我从 php 中的 mysql 获取一个数组,其中包含以下项目:

A, B, B, B

我对数组执行 foreach 并检查每个项目。对于每个项目,我运行一个返回另一个值的查询。对于第一个项目,我没有问题,因为以下查询仅返回一个项目:

SELECT id, id_ogg FROM rischiatura WHERE id_ruolo = 'RU010000003' AND id_ndg = '$ndg'

其中 $ndg 值是从数组中获取的。所以在第一次运行中我得到 id_ndg = 'A'。

在其他运行中,查询每次返回三个结果(可以 - 数组中的三个相同的项目=从此查询返回三行)。我的问题是:在 foreach 循环中如何运行此查询,将结果限制为第一次返回的第一个行,第二次运行的第二个,第三次运行的第三个?

起点是:

foreach($items as $ndg){
SELECT id, id_ogg FROM rischiatura WHERE id_ruolo = 'RU010000003' AND id_ndg = '$ndg';
}

我正在寻找一些代码,既可以用于单个项目 A,也可以用于每次返回三个结果之一的 B。

最佳答案

SELECT ... WHERE ... LIMIT 0, 1
SELECT ... WHERE ... LIMIT 1, 1
SELECT ... WHERE ... LIMIT 2, 1

LIMIT 的参数是起始偏移量(可选)和要返回的行数。但如果是我,我会检测第一个查询结果中的重复,然后只处理一个后续查询中的三行:

# (Remove duplicates from $items, then ...)
foreach($items as $ndg){
$result = mysql_query("SELECT id, id_ogg FROM rischiatura
WHERE id_ruolo = 'RU010000003' AND id_ndg = '$ndg'");
while ($row = mysql_fetch_row($result)) {
# Process each result row: no duplication
}

}

当然你也可以用同样的方式使用mysqliPDO;这是为了说明(而不是对 mysql_* API 的认可)。

关于php - 将查询结果限制为特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34157892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com