rowid 对应mysql_请教一下相当于MySQL中Oracle的RowID
在MySql中,通常使用會話變量來實現(xiàn)功能:
SELECT @rowid:=@rowid+1 as rowid
FROM table1, (SELECT @rowid:=0) as init
ORDER BY sorter_field
但是您無法在要從子查詢中刪除的表上進行排序。
UPD:也就是說,您將需要創(chuàng)建一個臨時表,將測距子查詢插入到該臨時表中,并通過與臨時表聯(lián)接來從原始表中刪除(您將需要一些唯一的行標識符):
CREATE TEMPORARY TABLE duplicates ...
INSERT INTO duplicates (rowid, field1, field2, some_row_uid)
SELECT
@rowid:=IF(@f1=field1 AND @f2=field2, @rowid+1, 0) as rowid,
@f1:=field1 as field1,
@f2:=field2 as field2,
some_row_uid
FROM testruns t, (SELECT @rowid:=NULL, @f1:=NULL, @f2:=NULL) as init
ORDER BY field1, field2 DESC;
DELETE FROM my_table USING my_table JOIN duplicates
ON my_table.some_row_uid = duplicates.some_row_uid AND duplicates.rowid > 0
由于這是一次操作,因此不會帶來太多開銷。
總結(jié)
以上是生活随笔為你收集整理的rowid 对应mysql_请教一下相当于MySQL中Oracle的RowID的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql最大连接数查询_MYSQL 查
- 下一篇: mysql 锁 会话_MySQL会话锁等