MySQL-Äquivalent zur RowID von Oracle
In MySQL gibt es kein direktes Äquivalent zur RowID von Oracle. Es gibt jedoch mehrere Möglichkeiten, eine ähnliche Funktionalität zu erreichen.
Ein Ansatz besteht darin, Sitzungsvariablen und Unterabfragen zu verwenden:
SELECT @rowid:=@rowid+1 as rowid FROM table1, (SELECT @rowid:=0) as init ORDER BY sorter_field
Dadurch wird jeder Zeile eine eindeutige Kennung zugewiesen, die verwendet werden kann zum Sortieren oder für andere Zwecke.
Ein anderer Ansatz zum Löschen doppelter Datensätze besteht darin, eine temporäre Tabelle zu erstellen und einen Join zwischen der temporären Tabelle und dem Original durchzuführen Tabelle:
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
Dieser Ansatz wird empfohlen, wenn die Sortierung für die Tabelle, aus der in Unterabfragen gelöscht wird, nicht durchgeführt werden kann.
Das obige ist der detaillierte Inhalt vonWas sind die MySQL-Alternativen zu Oracles RowID?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!