php - 如何在选择查询中获取行号

标签 php mysql sql-server

我尝试此查询以获取选定行中的行号,但输出类似于 23,56,78,.... 我需要为每个选定行获取 1,2,3。请帮助我

SET @row=0;
SELECT `table1`.`col1`,`table1`.`col2`,@row:=@row+1
FROM `table1`
LEFT OUTER JOIN `table2` ON `table1`.`col1` = `table2`.`col5`
WHERE `table2`.`col5` IS NOT NULL
GROUP BY `col1` ORDER BY `table1`.`col7` DESC LIMIT 0,10

最佳答案

将带有 ORDER BY 子句的查询移动到子查询中。

SET @row = 0;

SELECT col1, col2, @row := @row+1
FROM (SELECT table1.col1, table1.col2
      FROM table1
      LEFT JOIN table2 ON table1.col1 = table2.col5
      WHERE table2.col5 IS NOT NULL
      GROUP BY col1
      ORDER BY table1.col7 DESC
      LIMIT 0, 10) AS subquery

关于php - 如何在选择查询中获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524035/

相关文章:

SQL 查询返回不需要的值选择计数名称姓氏返回所有记录

php - 将 JS 数组传递给 PHP,然后更新 MySQL

php - 将 php 数组填充到 HTML 表中

php - mysql从html更新选择选项错误

mysql - Flyway 无法从 Docker-Container 连接到 MySQL

java - 以 java OOP 风格处理 SQL 数据库连接的正确方法

c# - Entity Framework 和不同的环境(开发/生产)

sql-server - 为什么我的两台服务器之间的实际执行计划不同?

php - 组合两个 PHP 变量进行 MySQL 查询

php - woocommerce 中基于角色的税收