在mysql上使用随机限制

Sta*_*olf 5 mysql sql database random limit

我刚刚使用了这个查询

SELECT * FROM questions 
ORDER BY RAND()
LIMIT 20;
Run Code Online (Sandbox Code Playgroud)

在 mysql 数据库上,我有一个名为 display 的列(以及问题列),其中值等于 1。所以现在正如您在查询中看到的那样,我限制为 20。我想更改所有的值20 显示=0。我知道这是查询

update test3
set display=0
where id=11;
Run Code Online (Sandbox Code Playgroud)

但这只是设置一行的显示。我该如何做 20 行呢?提前致谢。

Shi*_*edi 4

你可以这样做

update test3
set display=0 
where id in (select id from questions order by rand() limit 20);
Run Code Online (Sandbox Code Playgroud)

假设您正在使用 php。

$result = msyql_query("select id from questions order by rand() limit 20");

$ids = array();

while($row = msyql_fetch_assoc($result)){
    $ids[] = $row['id'];  
}
Run Code Online (Sandbox Code Playgroud)

对于您的条件,首先执行第一个查询并保存第一个查询中的 id。

假设您使用的是 php,并且您已将第一个查询的 id 保存在$ids;中。

您可以像这样运行第二个查询;

$idstring = implode(',',$ids);

$query = 'update test3 set display=0 where id in ('.$idstring.' )';

$result = mysql_query($query);
Run Code Online (Sandbox Code Playgroud)