2011-09-09 32 views
0

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

+1

这是你的作业吗? – Marco

+0

不...个人项目。 –

+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功能已经没有什么beeing冷落的概念。据我所知,DISTINCT关键字没有可用的类似信息功能,除了运行查询两次外,没有别的选择。

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

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


注意:您仍然可以既SQL_CALC_FOUND_ROWSDISTINCT在同一个查询中使用,但FOUND_ROWS();将只能看到由LIMIT条款排除在外。