- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理使用 SQL_CALC_FOUND_ROWS() 的分页代码,但是当我将每页的结果限制为小于总结果的数字时,“SELECT FOUND_ROWS() as total”将返回每页的元素数,并且不是找到的行的总数。因为我正在从第二个选择中进行选择,所以这个结果完全有意义,但我不知道如何解决这个问题。如何将总结果从内部传递到外部选择?
我的代码(请忽略 php 转义的引号):
SELECT SQL_CALC_FOUND_ROWS userid,contaTipo,userNome,nomeFantasia,sexo,cidade,estado,bairro,imovelN,logradouro,avaliacao,imagem,formasPagamento,estabelecimento,profissao
FROM
(SELECT vw_Busca.userid as userid, vw_Busca.contaTipo as contaTipo, vw_Busca.userNome as userNome,
vw_Busca.nomeFantasia as nomeFantasia,vw_Busca.sexo as sexo, vw_Busca.cidade as cidade, vw_Busca.estado as estado, vw_Busca.bairro as bairro,
vw_Busca.imovelN as imovelN,vw_Busca.logradouro as logradouro,tipoProfissionalPF.tipo as profissao, tipoProfissionalPJ.tipo as estabelecimento,
vw_userRating.total as avaliacao, GROUP_CONCAT(especialidades.especialidade SEPARATOR ', ') as especs,
vw_Busca.imagem as imagem, GROUP_CONCAT( DISTINCT userPagamento.formaPagamento SEPARATOR ', ') as formasPagamento
FROM vw_Busca
LEFT JOIN usersEspec ON usersEspec.userid=vw_Busca.userid
LEFT JOIN especialidades ON especialidades.id=usersEspec.especialidade
LEFT JOIN userPagamento ON userPagamento.userid=vw_Busca.userid
LEFT JOIN profissionais ON profissionais.userid=vw_Busca.userid
LEFT JOIN tipoProfissionalPF ON tipoProfissionalPF.id=profissionais.profissao
LEFT JOIN empresaDados ON empresaDados.userid=vw_Busca.userid
LEFT JOIN tipoProfissionalPJ ON tipoProfissionalPJ.id=empresaDados.tipoProfissionalPJ
LEFT JOIN vw_userRating ON vw_userRating.userid=vw_Busca.userid
WHERE vw_Busca.cidadeId='$cidade' AND (vw_Busca.userNome LIKE '%".$termo."%' OR
vw_Busca.nomeFantasia LIKE '%".$termo."%'
OR vw_Busca.tags LIKE '%".$termo."%')
GROUP BY userid LIMIT $inicio,$qtd) as mainTable
ORDER BY mainTable.avaliacao DESC
最佳答案
看起来您的外部选择只是对内部查询返回的结果进行排序。由于您的内部查询已经应用了 LIMIT,因此您的外部查询实际上是对部分结果进行排序,这对我来说似乎是不正确的。所以我想您可以完全删除外部选择,这将解决您的问题。
顺便说一句,刚刚注意到 SQL_CALC_FOUND_ROWS 查询修饰符和随附的 FOUND_ROWS() 函数根据 documentation 从 MySQL 8.0.17 开始弃用。
关于mysql - 有多个选择时如何使用 SQL_CALC_FOUND_ROWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992073/
$query->select('SQL_CALC_FOUND_ROWS i.title,i.fulltext,i.shorttext'); $query->from('#__items
我们开始使用基于语句的复制,发现它破坏了 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS(),我正在寻找解决方法。 2007 年错误报告中的评论建议使用 SELECT SQL_CAL
所以我执行查询: SELECT SQL_CALC_FOUND_ROWS * FROM table l LIMIT 10, 20; 从表中返回 20 行,表中共有 553 行 然后我立即执行SELECT
我正在处理使用 SQL_CALC_FOUND_ROWS() 的分页代码,但是当我将每页的结果限制为小于总结果的数字时,“SELECT FOUND_ROWS() as total”将返回每页的元素数,并
如何获取特定查询的总行数并将查询结果限制为 10 行。例如。我有一个名为样本的表。它有 400 行。在运行像 where name = "%Sam%"这样的查询时,它返回 213 行。现在我只取前 1
我使用嵌套的 MySQL 查询来获取用户帖子,当我将 SQL_CALC_FOUND_ROWS 放入子查询时,MySQL 返回错误:Incorrect usage/placement of 'SQL_C
我发现 MySQL 返回一个 Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS' 如果我将 SQL_CALC_FOUND_ROWS 放入子查询中会出错
所以我有一个表,其中有超过 500 万行。当我使用 SQL_CALC_FOUND_ROWS 时,查询永远挂起。当我把它拿出来时,查询在一秒钟内执行,限制为 25。我的问题是出于分页原因,是否有替代方法
我目前正在摸索如何使用准备好的语句实现 SQL_CALC_FOUND_ROWS。 我正在编写一个分页类,显然我想向查询添加 LIMIT,但也想知道总行数是多少。 这是相关类(class)的示例。 $q
我想删除此查询返回的记录: SELECT SQL_CALC_FOUND_ROWS tag, COUNT( tag ) AS count FROM _tags GROUP BY tag HAVING c
我正在做一个简单的 MySQL 查询来计算查询返回的行数,而没有 LIMIT 子句的影响。我将 Active Records 与 Codeigniter PHP 框架结合使用。 问题:使用SQL_CA
我正在尝试从数据库进行分页,到目前为止我发现如果您想使用限制,您应该使用 SQL_CALC_FOUND_ROWS。 但是,在 Java 中,我在理解如何调用它时遇到了一些问题。 我可以在一个 prep
我有一个查询,它获取一个结果,对其进行限制,然后对有限的结果进行排序。像这样的东西: (SELECT SQL_CALC_FOUND_ROWS * FROM table ... ORDER BY sc
我在 MySQL、InnoDB 中使用 SQL_CALC_FOUND_ROWS 时遇到一些问题。首先让我展示一个简单的数据库架构来解释正在发生的事情...... Database Schema 媒体表
我正在使用名为 feedwordpress 的 WordPress 插件为了在 WordPress 上运行一个类似行星的网站(参见 here )。 这个插件很棒,除了一件事之外 - 它每周左右都会占用
根据这个答案:here The use of SQL_CALC_FOUND_ROWS is not subject to race conditions. The result of the SELE
我在 centos 6 机器上使用 MySQL 5.6(mysql Ver 14.14 Distrib 5.6.44,用于使用 EditLine 包装器的 Linux (i686)) 我有一个包含多个
我正在尝试为查询全文索引表的结果添加分页。这是查询: 普通查询 SELECT *,MATCH(title) AGAINST ("+samsung +galaxy +s3" IN BOOLEAN MOD
我在使用 MYSQL 时遇到问题。 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 工作不正常。 问题: 第一次总返回1 第二次总数返回正确的3,500 名 MYSQL版本: m
这是我所知道的一种方式。请建议任何其他??? SELECT SQL_CALC_FOUND_ROWS * FROM Table; SELECT FOUND_ROWS(); 最佳答案 你可以使用(它会更快
我是一名优秀的程序员,十分优秀!