我想创建一个基于我的地址表中现有值的测试数据表。

例如,我想获取一个随机的名字值,姓氏值,地址等,并将其插入到我的TestAddress表中的新行中。总共约有10列。

有没有一种好的方法,而不必为每行的每个列值进行一次选择?

例如

INSERT INTO TestAddress(Titel,Vorname,Nachname,Strasse,Hausnummer,Zusatz,PLZ,ORT)

VALUES(
SELECT Titel FROM Adressen where ID = FLOOR(RAND()*50000000) ,
SELECT Vorname FROM Adressen where ID = FLOOR(RAND()*50000000)  ,
SELECT Nachname FROM Adressen where ID = FLOOR(RAND()*50000000)  ,
SELECT Strasse FROM Adressen where ID = FLOOR(RAND()*50000000) ,
SELECT Hausnummer FROM Adressen where ID = FLOOR(RAND()*50000000)  ,
SELECT Zusatz FROM Adressen where ID = FLOOR(RAND()*50000000)  ,
SELECT PLZ FROM Adressen where ID = FLOOR(RAND()*50000000) ,
SELECT ORT FROM Adressen where ID = FLOOR(RAND()*50000000)
)


请注意,上面的示例不起作用。

最佳答案

在考虑了您要问的问题之后,我假设您正在说的是从多行中选择一列。并从所有这些列中创建新记录。

INSERT INTO table1 (col1,col2,col3,col4,...,col10) VALUES(
  (SELECT col1 FROM table2 WHERE rowid = #) as col1,
  (SELECT col2 FROM table2 WHERE rowid = #) as col2,
  (SELECT col3 FROM table2 WHERE rowid = #) as col3,
  (SELECT col4 FROM table2 WHERE rowid = #) as col4,
  ...,
  (SELECT col10 FROM table2 WHERE rowid = #) as col10,
)

关于mysql - 使用SQL从现有数据生成测试表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23415180/

10-13 08:14