gpt4 book ai didi

php - 如何检查另一个表的最后 N 行中是否存在值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:35 25 4
gpt4 key购买 nike

used 包含已用元素的列表。如果它是最后使用的 10 个项目之一,我不希望再次使用该项目。

从一些谷歌搜索中,我似乎需要一个子查询,但无法让它工作。这是我到目前为止尝试过的方法

$check = mysqli_query($db, 'SELECT `id` 
FROM (
SELECT `id`
FROM `used`
ORDER BY `id` DESC
LIMIT 10)
WHERE `item` = ' . $id);

在此之前,我使用以下内容

$check = mysqli_query($db, 'SELECT `id` 
FROM `used`
WHERE `item` = ' . $id . '
ORDER BY `id` DESC
LIMIT 10);

但是,这似乎只限制了 10 个结果,所以如果使用了一个项目,即使在最后 10 个之外,也总是返回 true

最佳答案

听起来您想检查项目 $id 是否在 used 表的最后 10 个项目中。这个查询应该这样做:

$check = mysqli_query($db, "SELECT $id NOT IN (SELECT item 
FROM used
ORDER BY id DESC
LIMIT 10)");

如果 $id 的值不在 used 中 item 的最后 10 个值中,则此查询将返回 1 表,否则为 0

对于在 IN 子查询中不支持 LIMIT 的 MySQL 版本,您可以使用 LEFT JOIN 作为此查询中的返回相同的结果:

SELECT IF(b.item IS NULL, 1, 0) 
FROM used a
LEFT JOIN (SELECT item
FROM used
ORDER BY id DESC LIMIT 10) b ON b.item = a.item
WHERE a.item = $id

关于php - 如何检查另一个表的最后 N 行中是否存在值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235066/

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