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

  显示原文与译文双语对照的内容
0 0

如果我有一个生成随机数的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查询。

时间: 原作者:

0 0

是,如果将变量与字符串连接在一起,则是可能的:


$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的值。

原作者:
0 0

这可能只是在字符串外使用双引号而不是单引号。


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

...