Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从多个相同的表中创建一个大表_Mysql_Database_Mysql5 - Fatal编程技术网

Mysql 从多个相同的表中创建一个大表

Mysql 从多个相同的表中创建一个大表,mysql,database,mysql5,Mysql,Database,Mysql5,很久以前,我创建了一个应用程序,其中包含每个用户的数据库和表,每个表只有一行。所以我有像user1,user2,…,user2800这样的表。现在我知道这是一个糟糕的想法,所以我正在尝试为每个用户创建一个大表。我需要创建一个表 CREATE TABLE `users` (`user_id`, `col1`, `col2`, ...) 从以下表格中: TABLE `user###` (`row_id`, `col1`, `col2`, ...) 其中####是用户的id 有什么好办法吗?不要尝

很久以前,我创建了一个应用程序,其中包含每个用户的数据库和表,每个表只有一行。所以我有像user1,user2,…,user2800这样的表。现在我知道这是一个糟糕的想法,所以我正在尝试为每个用户创建一个大表。我需要创建一个表

CREATE TABLE `users` (`user_id`, `col1`, `col2`, ...)
从以下表格中:

TABLE `user###` (`row_id`, `col1`, `col2`, ...)
其中####是用户的id


有什么好办法吗?

不要尝试用sql来做这件事,只要用你喜欢的语言编写脚本就行了。在伪代码中:

$tables = get_tables();  // write funciton that uses "show tables from books;"
foreach $tables as $table {
    $userid = getIdFromTableName($table); // simple regexp
    $data = getRowFromTable($table); // get data from old table
    insertIntoUser($userid, $data); // inserts your userid and the data in the new table
}

它太宽泛了,弄不清您最喜欢的语言是什么,以及创建脚本的具体细节是什么,但这是您应该做的。

不要尝试在sql中这样做,只需用您最喜欢的语言编写脚本即可。在伪代码中:

$tables = get_tables();  // write funciton that uses "show tables from books;"
foreach $tables as $table {
    $userid = getIdFromTableName($table); // simple regexp
    $data = getRowFromTable($table); // get data from old table
    insertIntoUser($userid, $data); // inserts your userid and the data in the new table
}

它太宽泛了,弄不清您最喜欢的语言是什么,以及创建脚本的细节是什么,但这是您应该做的。

由于所有用户表都有相同的字段,您只需创建唯一的表,然后在所有用户表上循环以检索其内容

例如,对于PHP,它可能是这样的:

$sql = CREATE TABLE `users` (`user_id`, `col1`, `col2`, `col3`);
$mysqli_query($link, $sql);

$nbContacts = 2800;
for($i = 1;$i <= $nbContacts; $i++)
{
    $sql = 'INSERT INTO users(`user_id`, `col1`, `col2`, `col3`) SELECT `'.$i.'`, `col1`, `col2`, `col3` FROM `user'.$i.'`';
    $mysqli_query($link, $sql);
}
$sql=CREATE表`users`(`user\u id`、`col1`、`col2`、`col3`);
$mysqli_query($link,$sql);
$nbContacts=2800;

对于($i=1;$i),由于所有用户表都有相同的字段,因此只需创建唯一的表,然后在所有用户表上循环以检索其内容

例如,对于PHP,它可能是这样的:

$sql = CREATE TABLE `users` (`user_id`, `col1`, `col2`, `col3`);
$mysqli_query($link, $sql);

$nbContacts = 2800;
for($i = 1;$i <= $nbContacts; $i++)
{
    $sql = 'INSERT INTO users(`user_id`, `col1`, `col2`, `col3`) SELECT `'.$i.'`, `col1`, `col2`, `col3` FROM `user'.$i.'`';
    $mysqli_query($link, $sql);
}
$sql=CREATE表`users`(`user\u id`、`col1`、`col2`、`col3`);
$mysqli_query($link,$sql);
$nbContacts=2800;

对于($i=1;$i Threse multiples user tables没有相同的字段?@Veve每个表都有相同的字段扫描您在执行此任务时使用类似PHP的东西吗?@Jorge,这正是Marek寻求帮助的原因……是的……我阅读了它并直接来到了评论部分……抱歉,我将删除我的评论。Threse multiples user tables没有相同的字段s?@Veve每个表都有相同的字段扫描您在执行此任务时使用类似PHP的东西吗?@Jorge,这正是Marek请求帮助的内容……是的……我阅读了它并直接来到评论部分……抱歉,我将删除我的评论。