当前位置:  开发笔记 > 编程语言 > 正文

在表中搜索并获得结果和结果数量的最佳方法(MySQL)

如何解决《在表中搜索并获得结果和结果数量的最佳方法(MySQL)》经验,为你挑选了1个好方法。

我有一个"项目"表和一个"项密钥"表.当用户搜索关键字时,我想给他一页结果加上结果总数.

我目前正在做的是(对于搜索"ab 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



1> ysth..:

在有限选择中选择后添加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();

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有