2016-08-13 69 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

相关问题