php - 选择随机数据库行 WHERE ID=由 PHP 函数创建的随机值

标签 php mysql database codeigniter

如果我有一个生成随机数的 PHP 函数,是否可以将该变量传递到 WHERE 子句中的 sql 语句中?我正在使用 CodeIgniter,所以这是我使用其语法的代码。

$random = rand(1, 572);
$result = $this->db->query( ' SELECT part1, part2, _id FROM `questions` WHERE `_id` >= '$random' LIMIT 0,1 ');

这可能吗?

编辑:我希望 php 执行随机数的原因是因为我需要在整个页面中多次调用它,并且它需要使用 sql 查询对另一个数据库进行另一次调用

最佳答案

是的,如果您将变量与字符串连接起来,这是可能的:

$query = "SELECT 
            part1, 
            part2, 
            _id 
          FROM
            questions
          WHERE _id >= " . $random . " LIMIT 0,1";
$result = $this->db->query($query);

但是如果您想要选择随机行,那么您可能需要此查询

 SELECT part1, part2, _id FROM questions ORDER BY RAND() LIMIT 1 

编辑

我知道 _id 是随机的,但您正在为 rand() 指定 minmax >,对吗?因此,每当插入新行时,您都必须更改它,或者如果您想确保 rand() 不会返回太高的值,则必须使用两个查询。通过使用ORDER BY RAND(),您就可以避免这两个问题。您只需获取从查询返回的 _id 值即可。

关于php - 选择随机数据库行 WHERE ID=由 PHP 函数创建的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396455/

相关文章:

mysql - 比较两个数据库的结构?

php - 消除服务器端 View |优点缺点

php - 处理 innoDB 死锁

php - mongoDB适合blogger这样的博客平台吗?

c++ - 使用共享库的 MySql UDF 不会加载

mysql - 在列中获取表行

php - 检查 echo 内的单选按钮

php - 修改php脚本以填充SQL Server 2012

开源项目数据库

database - 向 hive 表中插入数据