Die Idee, die ich mit Ihnen teilen möchte, ist keine präzise Antwort auf die Frage, kann aber für einige nützlich sein, so dass ich sie gerne mit Ihnen teilen möchte.
Wenn Sie häufig nur eine begrenzte Anzahl von Zahlen benötigen, kann es von Vorteil sein, eine Tabelle mit den Zahlen zu erstellen, die Sie benötigen, und nur diese Tabelle jedes Mal zu verwenden. Zum Beispiel:
CREATE TABLE _numbers (num int);
INSERT _numbers VALUES (0), (1), (2), (3), ...;
Dies kann nur angewandt werden, wenn Sie Zahlen unterhalb einer bestimmten vernünftigen Grenze benötigen, also verwenden Sie es nicht für die Generierung der Sequenz 1...1 Million, sondern zum Beispiel für die Zahlen 1...10k.
Wenn Sie diese Liste von Nummern in der _numbers
Tabelle können Sie dann Abfragen wie die folgende schreiben, um die einzelnen Zeichen einer Zeichenkette zu ermitteln:
SELECT number, substr(name, num, 1)
FROM users
JOIN _numbers ON num < length(name)
WHERE user_id = 1234
ORDER BY num;
Wenn Sie größere Zahlen als 10k benötigen, können Sie die Tabelle mit sich selbst verbinden:
SELECT n1.num * 10000 + n2.num
FROM _numbers n1
JOIN _numbers n2
WHERE n1 < 100
ORDER BY n1.num * 10000 + n2.num; -- or just ORDER BY 1 meaning the first column
0 Stimmen
Möchten Sie dies zu bestehenden Datensätzen oder zu einer völlig neuen Tabelle hinzufügen?
1 Stimmen
Warum können Sie keine auto_increment-Spalte verwenden?