2016-08-13 67 views
0

是否可以在mySQL中生成一個包含自動遞增索引的字符串?創建一個從索引派生的mySQL字符串

的記錄看起來像:

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

我可以用它在 「插入」 COMAND?像這樣:

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

回答

1

你可以不知道AUTO_INCREMENT索引您插入行之前。但是你可以用兩條語句來做:

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

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

的答案,所以這實際上意味着來自我的PHP的兩個不同的sql調用? (或者你的意思是我可以以某種方式在一個SQL字符串中做它?) – user3495363

+1

這是你的設置問題。您可以在一個查詢中傳遞兩個SQL語句。 –

0

這樣的事情?

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

See Demo

編輯:

爲了在一個表中插入隨機文本:

CREATE TABLE curB(
    randomNumberText VARCHAR(50) 
); 

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

我可以在「插入」命令中使用它嗎?像這樣: INSERT INTO CurB(generatedField)VALUES(RAND()+ Index); – user3495363

+0

'curB'表的結構是什麼?它是否已經創建? – 1000111

+0

是的,它有「索引」列自動增加,它有「generatedField」culum。我想在創建記錄時立即在「generatedField」中指定一個值(並且我希望這個記錄是從記錄創建時生成的索引的值中組合出來的,以及一個隨機數) – user3495363

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

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

我可以在「插入」命令中使用它嗎?像這樣: INSERT INTO CurB(generatedField)VALUES(RAND()+ Index); – user3495363

+0

我已經更新了插入 – scaisEdge

相關問題