我只是用这个查询

SELECT * FROM questions 
ORDER BY RAND()
LIMIT 20;

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

update test3
set display=0
where id=11;

但这只是将显示设置为一行,我该如何为20行显示呢.
提前致谢.

解决方法:


你可以这样做

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

假设您正在使用php.

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

$ids = array();

while($row = msyql_fetch_assoc($result)){
    $ids[] = $row['id'];  
}

根据您的条件,首先执行第一个查询并保存第一个查询中的ID.

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

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

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

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

$result = mysql_query($query);

标签: mysql, limit, random, database, sql

相关文章推荐

添加新评论,含*的栏目为必填