gpt4 book ai didi

asp.net - 在表中搜索并获取结果和结果数量的最佳方式 (MySQL)

转载 作者:可可西里 更新时间:2023-11-01 07:57:50 25 4
gpt4 key购买 nike

我有一个“items”表和一个“itemkeywords”表。当用户搜索关键字时,我想给他一页结果加上结果总数。

我目前正在做的是(对于搜索“a b c”的用户:

SELECT DISTINCT {fields I want} FROM itemkeywords JOIN items   
WHERE (keyword = 'a' or keyword='b' or keyword='c'
ORDER BY "my magic criteria"
LIMIT 20.10

然后我用一个计数做同样的查询

SELECT COUNT(*) FROM itemkeywords JOIN items   
WHERE (keyword = 'a' or keyword='b' or keyword='c'

这可能会得到一个相当大的表,我认为这个解决方案非常糟糕......
但我想不出更好的办法。

避免两次访问 MySQL 的明显替代方法是只执行第一个查询,没有 LIMIT 子句,然后导航到正确的记录以显示相应的页面,然后导航到记录集的末尾以进行计数结果似乎更糟......

有什么想法吗?

注意:我使用的是 ASP.Net 和 MySQL,而不是 PHP

最佳答案

在有限选择中的选择之后添加 SQL_CALC_FOUND_ROWS,然后在第一个选择完成后执行“SELECT FOUND_ROWS()”。

例子:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();

关于asp.net - 在表中搜索并获取结果和结果数量的最佳方式 (MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/146212/

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