Mysql 如何计算联接查询中的结果

Mysql 如何计算联接查询中的结果,mysql,Mysql,为了计算结果,我首先提出了添加第2行,但是添加第2行只返回一行结果和计数。如何在这种情况下同时获得结果和计数?您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……它甚至可能会增加处理开销。您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……甚至可能会增加处理开销。

为了计算结果,我首先提出了添加第2行,但是添加第2行只返回一行结果和计数。如何在这种情况下同时获得结果和计数?

您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……它甚至可能会增加处理开销。

您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……甚至可能会增加处理开销。

将查询更改为:

select music.*
 ,count(*) as count
FROM music
  JOIN music_tagmap ON music.id = music_tagmap.music_id
  JOIN tag ON music_tagmap.tag_id=tag.id
   WHERE tag.content = ...
   LIMIT 10 OFFSET 0;
然后在完成后运行第二个查询:

select SQL_CALC_FOUND_ROWS music.*
FROM music
  JOIN music_tagmap ON music.id = music_tagmap.music_id
  JOIN tag ON music_tagmap.tag_id=tag.id
   WHERE tag.content = ...
   LIMIT 10 OFFSET 0;
这将为您提供在第一次查询中选择的行数,就像没有LIMIT语句一样。

将查询更改为:

select music.*
 ,count(*) as count
FROM music
  JOIN music_tagmap ON music.id = music_tagmap.music_id
  JOIN tag ON music_tagmap.tag_id=tag.id
   WHERE tag.content = ...
   LIMIT 10 OFFSET 0;
然后在完成后运行第二个查询:

select SQL_CALC_FOUND_ROWS music.*
FROM music
  JOIN music_tagmap ON music.id = music_tagmap.music_id
  JOIN tag ON music_tagmap.tag_id=tag.id
   WHERE tag.content = ...
   LIMIT 10 OFFSET 0;

这将为您提供在第一次查询中选择的行数,就像没有限制语句一样。

您是否希望获得查询匹配的行总数(限制之外)?您是否希望获得查询匹配的行总数(限制之外)?