Php 如何更新数据库中的随机行?

Php 如何更新数据库中的随机行?,php,mysql,Php,Mysql,如何使用带where子句的rand()更新数据库中的随机行 这就是我现在正在尝试的,它不起作用,不确定出了什么问题 mysql_query("UPDATE `user` SET `token` = '$session' WHERE NOT toke = '1' limit 1 rand()"); 您的查询无效。首先,它有一个输入错误,toke应该是tokenWHERE NOT应该是WHERE标记“1”。您确实可以使用RAND(),但要使用onorderby子句。因此,您的查询应该如下所示:

如何使用带where子句的rand()更新数据库中的随机行

这就是我现在正在尝试的,它不起作用,不确定出了什么问题

mysql_query("UPDATE `user` SET `token` = '$session' WHERE NOT toke = '1'  limit 1 rand()");

您的查询无效。首先,它有一个输入错误,
toke
应该是
token
<代码>WHERE NOT应该是
WHERE标记“1”
。您确实可以使用
RAND()
,但要使用on
orderby
子句。因此,您的查询应该如下所示:

mysql_query("UPDATE `user` SET `token` = '$session' WHERE `token` <> '1' ORDER BY RAND() LIMIT 1");
mysql\u查询(“更新`user`SET`token`='$session',其中`token`'1'按RAND()限制1排序”);

您的查询无效。首先,它有一个输入错误,
toke
应该是
token
<代码>WHERE NOT应该是
WHERE标记“1”
。您确实可以使用
RAND()
,但要使用on
orderby
子句。因此,您的查询应该如下所示:

mysql_query("UPDATE `user` SET `token` = '$session' WHERE `token` <> '1' ORDER BY RAND() LIMIT 1");
mysql\u查询(“更新`user`SET`token`='$session',其中`token`'1'按RAND()限制1排序”);

错的是你只是在某处随机添加了
RAND()
,而不考虑SQL语法…可能的重复错误是你只是在某处随机添加了
RAND()
,而不考虑SQL语法…可能的重复我想她正在尝试更新随机行,所以关键点是更新uniqueID=rand()的内容。如果uniqueID是主键,那么LIMIT并不重要,但非常重要的是将rand()设置为有效的id,或者如果rand()抛出的某个数字不等于任何主键值,则查询不应更新任何内容。@Dusan
ORDER BY rand()
使用随机值创建列并对其进行排序。然后
LIMIT 1
将行数限制为1。因此,此查询将更新一个随机行。请注意,
orderbyrand()
必须为每一行创建一个随机值,然后进行相应的排序。这会变得很慢。我建议在0和行计数之间选择一个随机数,然后通过
LIMIT 1,random_number
进行偏移来过滤查询。我认为她正在尝试更新随机行,所以关键点是更新uniqueID=rand()的内容。如果uniqueID是主键,那么LIMIT并不重要,但非常重要的是将rand()设置为有效的id,或者如果rand()抛出的某个数字不等于任何主键值,则查询不应更新任何内容。@Dusan
ORDER BY rand()
使用随机值创建列并对其进行排序。然后
LIMIT 1
将行数限制为1。因此,此查询将更新一个随机行。请注意,
orderbyrand()
必须为每一行创建一个随机值,然后进行相应的排序。这会变得很慢。我建议在0和行计数之间选择一个随机数,然后通过
LIMIT 1,random\u number