我尝试此查询以获取所选行中的行号,但输出类似于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/

10-09 07:19
查看更多