MySql UPDATE按行号截止

时间:2015-09-14 13:10:17

标签: mysql

我需要通过某个ORDER BY()对表进行排序,然后更新一列,以便如果行在前n行中,则此列的新值为EXPR1(),否则为EXPR2()。目前我在两个更新语句中执行此操作。是否有可能使它比这更有效(即避免分类两次,而不引入另一个低效率)?

我目前的解决方案:

UPDATE tbl
SET c = expr1()
ORDER BY sorter ASC
LIMIT n

然后(假设m =(SELECT COUNT(*)FROM tbl) - n)

UPDATE tbl
SET c = expr2()
ORDER BY sorter DESC
LIMIT m

0 个答案:

没有答案