首页 > 数据库 > mysql教程 > Oracle RowID 的 MySQL 替代方案是什么?

Oracle RowID 的 MySQL 替代方案是什么?

Linda Hamilton
发布: 2024-12-05 00:34:11
原创
899 人浏览过

What are the MySQL Alternatives to Oracle's RowID?

Oracle 的 RowID 的 MySQL 等效项

在 MySQL 中,没有与 Oracle 的 RowID 直接等效的值。然而,有几种方法可以实现类似的功能。

一种方法是使用会话变量和子查询:

SELECT @rowid:=@rowid+1 as rowid
FROM table1, (SELECT @rowid:=0) as init
ORDER BY sorter_field
登录后复制

这将为每一行分配一个唯一的标识符,可以使用用于排序或其他目的。

删除重复记录的另一种方法是创建临时表并在临时表和原始表之间执行联接table:

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
登录后复制

当子查询中删除的表无法排序时,建议使用此方法。

以上是Oracle RowID 的 MySQL 替代方案是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板