2016-08-13 2 views
0

Kann in mySQL eine Zeichenfolge generiert werden, die den automatisch inkrementierten Index enthält?Eine mySQL-Zeichenfolge erstellen, die vom Index abgeleitet ist

die der Datensatz aussehen würde:

Index | generatedField 
----------------------- 
1  | random_Number_1 
2  | random_Number_2 

kann ich es in einem "Einfügen" comand? wie das:

INSERT INTO CrB (generatedField) VALUES ( CONCAT(rand(),`Index`)); 

Antwort

1

Sie können nicht den auto_increment Index kennen, bevor Sie die Zeile einzufügen. Aber Sie können es mit zwei Anweisungen tun:

INSERT INTO CurB (generatedField) VALUES (''); 

UPDATE CurB 
SET generatedField = CONCAT(RAND(), '_', LAST_INSERT_ID()) 
WHERE `Index` = LAST_INSERT_ID(); 
+0

aktualisieren also bedeutet dies eigentlich zwei verschiedene SQL-Aufrufe von meinem PHP? (Oder meinst du, dass ich es irgendwie in einer sql-Zeichenfolge tun kann?) – user3495363

+1

Es ist eine Frage Ihrer Einstellungen. Sie können zwei SQL-Anweisungen in einer Abfrage übergeben. –

0

So ähnlich?

SELECT 
`Index`, 
CONCAT('random_number_',`Index`) AS generatedField 
FROM your_table; 

See Demo

EDIT:

Um zufälligen Text in einer Tabelle einzufügen:

CREATE TABLE curB(
    randomNumberText VARCHAR(50) 
); 

INSERT INTO curB(randomNumberText) VALUES(CONCAT('random_number_',RAND())); 
+0

kann ich es in einem "Einfügen" Befehl verwenden? so: INSERT IN CurB (generatedField) WERTE (RAND() + Index); – user3495363

+0

Wie ist die Struktur der 'curB' Tabelle? Ist es schon erstellt? – 1000111

+0

Ja, es hat "Index" colum, das automatisch inkrementiert wird und es hat "generatedField" culum. Und ich möchte sofort beim Erstellen des Datensatzes einen Wert im "generatedField" zuweisen (und ich möchte, dass dieser Datensatz aus dem Wert des Indexes zusammengesetzt wird, der bei der Datensatzerstellung zusammen mit einer Zufallszahl erzeugt wird) – user3495363

0
select concat('random_number_', index) as generated_field from my_table; 

und

insert into your_insert_table value(your_column) 
select concat('random_number_', index) as generated_field from my_table; 
+0

kann ich es in einem "Insert" -Kommando verwenden? so: INSERT IN CurB (generatedField) WERTE (RAND() + Index); – user3495363

+0

Ich habe die Antwort für den Einsatz – scaisEdge

Verwandte Themen