如果我有一个生成随机数的 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()
指定 min
和 max
>,对吗?因此,每当插入新行时,您都必须更改它,或者如果您想确保 rand()
不会返回太高的值,则必须使用两个查询。通过使用ORDER BY RAND()
,您就可以避免这两个问题。您只需获取从查询返回的 _id
值即可。
关于php - 选择随机数据库行 WHERE ID=由 PHP 函数创建的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396455/