Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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
Php SQL查询使用随机选择另一个表中的值替换一个表中的值_Php_Sql_Random - Fatal编程技术网

Php SQL查询使用随机选择另一个表中的值替换一个表中的值

Php SQL查询使用随机选择另一个表中的值替换一个表中的值,php,sql,random,Php,Sql,Random,我有一个表,其值希望通过cron作业定期更新。但是,我需要通过将其替换为其他表中的值来更新该值。问题是,我希望随机选择重置值 例如,表1中有 ID Email ================= 1 bobatumail 表2有: ID Email ================ 1 bobatumail 2 joeatumail 3 peteatumail 4 biffatumail 5 wilneratumail 6 w

我有一个表,其值希望通过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中的值相同


你知道怎么做吗?

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

REPLACE INTO table1 (ID, Email)
SELECT 1, table2.Email FROM table2 ORDER BY RAND() LIMIT 1;
第二行中的“1”表示条目的id,而第二部分从表2中返回一个随机值。是的,有使用UPDATE语句(JOIN和ANSI)的解决方案,但它总是很棘手,您通常必须关闭安全更新模式

请注意,“替换”首先删除旧条目,然后重新插入新条目


为什么有两个结构相同的表?大局如何?你想在这里实现什么?结构不完全相同。我只是为了简单而删节了它。。。表1中的用户获得了特殊的好处,我希望表2中的其他用户有机会随着时间的推移获得相同的好处。只有将他们列入表1,他们才能获得福利。表1是一个单行表。随机值总是从表2中的同一列中选取吗?听起来你应该在表2中有一列(int 0\1)“特殊福利”,而不是两个表。@Onite,是的。@达贡,我不能改变,但我明白你的意思。。。我之前写错了,表1有很多行,它必须保持不变……选择1是表1中条目的ID吗?我使用了该语法,但在字段列表中收到一个未知列错误(对于语法的Select 1部分)…可能列名拼写错误:将“id”替换为“id”,将“email”替换为“email”。我在语句中更正了它。是的,1是表1中条目的ID。在我的示例中,为了简单起见,我省略了一些列标题,这有关系吗。例如,表1中的实际标题是(settingid、name、value、accountid),其中值是“email”,设置ID是“ID”。。。我有列和行的确切名称,但不断出现错误。它实际上是说Select 1是一个列错误而不是rowOk,您使用的是哪个数据库?