gpt4 book ai didi

php - 使用 PDO 对数据集的变量限制

转载 作者:可可西里 更新时间:2023-11-01 09:02:18 24 4
gpt4 key购买 nike

我正在搜索一个非常大的数据库,并希望根据此条件限制返回的行。

我的查询是这样的

SELECT id,value,year FROM table WHERE value = '$formvariable'

我真正想要的是:

  • 如果查询返回的行超过 250 行,则仅显示按年份降序排列的最近 3 年的结果,限制为 1000。
  • 否则 250 行或更少,显示全部。

最佳答案

你可以尝试做这样的事情:

SELECT * FROM YourTable
WHERE value = '$formvariable'
AND 250 >= (SELECT COUNT(*) FROM YourTable)

UNION ALL
SELECT * FROM YourTable t
WHERE value = '$formvariable'
AND 250 <= (SELECT COUNT(*) FROM YourTable)
AND t.year >= YEAR(DATE_ADD(curdate(), INTERVAL -3 YEAR))
ORDER BY t.year DESC
LIMIT 1000

如果少于 250 条记录,将在 UNION 的第一部分选择所有记录,而从第二部分不选择任何记录。

如果多了,则不从第一部分选取,只选取近3年按year排序的前1000条。

关于php - 使用 PDO 对数据集的变量限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37695611/

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