Mysql没有它们,但是您可以
row_number()使用使用用户定义的变量的以下表达式进行模拟:
(@row := ifnull(@row, 0) + 1)
像这样:
select *, (@row := ifnull(@row, 0) + 1) row_numberfrom mytableorder by id
但是如果您要重用该会话,
@row它将仍然被设置,因此您需要像这样重置它:
set @row := 0;select *, (@row := @row + 1) row_numberfrom mytableorder by 1;
参见SQLFiddle。
dense_rank()可能,但是火车残骸;我建议在应用程序层处理该要求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)