MySQL多选选项

时间:2011-09-09 13:46:40

标签: mysql select

如何使用SQL_CALC_FOUND_ROWS和DISTINCT选项构建MySQL查询?

1 个答案:

答案 0 :(得分:0)

SQL_CALC_FOUND_ROWS仅适用于LIMIT子句,并允许您使用信息函数FOUND_ROWS()查找完整记录集中的行数,而无需运行其他查询来计算行。

SELECT SQL_CALC_FOUND_ROWS * FROM ... WHERE ... LIMIT X;

SELECT FOUND_ROWS();

由于DISTINCTwhere conditions等关键字实际上影响了整个记录集,因此SQL_CALC_FOUND_ROWS函数没有遗漏什么的概念。据我所知,DISTINCT关键字没有类似的信息功能,除了运行查询两次外别无选择。

SELECT DISTINCT * FROM ... WHERE ...;

SELECT COUNT(*) FROM ... WHERE ...;


注意:您仍然可以在同一查询中同时使用SQL_CALC_FOUND_ROWSDISTINCT,但FOUND_ROWS();只会看到LIMIT子句遗漏的内容。