我有一个复杂的MYSQL查询,我从多个数据源运行,可以根据请求进行排序(因此记录ID没有多大帮助)。
我想在每次运行查询时在数据完成时添加唯一的ID列,这样我就可以启用数据的分页功能。
如果我在数据库级别这样做,我可以使用id INTEGER AUTO_INCREMENT
,但这是关于每次运行查询时动态添加。
答案 0 :(得分:4)
你可以这样做:
SELECT
*, (@rownum := @rownum + 1) rank
FROM YourcomplexQuery, (SELECT @rownum := 0) t;
但是,您可以使用MySQL内置函数LIMIT
:
SELECT --
FROM Yourtable
ORDER BY SomeField
LIMIt 0, n;