0

我有一个表,我希望使用 cron 作业定期更新它的值。但是,我需要通过将其替换为不同表中的值来更新该值。问题是我希望随机选择替换值。

例如,表 1 有

ID    Email
=================
1     bobatumail

表 2 有:

ID    Email
================
1     bobatumail
2     joeatumail
3     peteatumail
4     biffatumail
5     wilneratumail
6     wilsonatumail

我希望查询将表 1 中的 bobatumail 替换为表 2 中的任何其他值,只要它是随机的。它甚至可以与表 1 中的值相同。

知道怎么做吗?

4

1 回答 1

0

在 MySQL 中,您可以使用 REPLACE 语句:

REPLACE INTO table1 (ID, Email)
SELECT 1, table2.Email FROM table2 ORDER BY RAND() LIMIT 1;

第二行中的“1”表示条目的 id,而第二部分返回 table2 中的随机值。是的,有使用 UPDATE 语句(JOIN 和 ANSI)的解决方案,但它总是很棘手,您通常必须关闭安全更新模式。

http://dev.mysql.com/doc/refman/5.5/en/mysql-command-options.html#option_mysql_safe-updates

请注意,REPLACE 首先删除旧条目,然后重新插入新条目。

http://dev.mysql.com/doc/refman/5.5/en/replace.html

于 2012-11-20T21:21:01.357 回答