【发布时间】:2013-08-17 05:25:28
【问题描述】:
我有两张桌子:
table_user
======================================
UID UserName
1 UserA
2 UserB
3 UserC
table_score
==============================
UID Date Score
2 18/7/2013 100
2 19/7/2013 150
我需要将分数历史数据(数千行)批量插入到 table_score。历史数据仅包含用户名、日期和分数。
我正在做的是让我的 PHP 脚本从 MySQL 加载给定 UserName 的 UID,将 UID 添加到批量插入 SQL 中并将其发送回 MySQL。这需要 PHP 和 MySQL 之间的 2 次通信。我对另一个用户重复上述内容。
是否可以让MySQL在一个SQL中插入日期和分数,并根据给定的UserName自动填写UID?
【问题讨论】:
-
score history是表还是什么? -
不,分数历史记录是要插入 table_score 的数千行。已更新问题以澄清这一点。
-
这个怎么样... INSERT INTO table_score (uid,Date,Score) VALUES ((SELECT UID FROM table_user WHERE userName='YourUserNAme) ,'2013-07-18',100)跨度>
-
您是否正在从文件中加载此历史数据?您是否需要按行、按批次、按文件评估用户 ID?
-
Baju Soman - 您的解决方案适用于单行插入,批量插入怎么样?假设为一位用户插入 1000 条得分记录。我不想重复 SELECT 1000 次。