在这个SQL语句中,子查询`(SELECT ROUND(RAND() * (SELECT MAX(id) FROM txtnovellist)) AS id)`生成了一个随机的id值,并将其命名为t2。然后在主查询中,使用了这个随机id值来筛选出txtnovellist表中id大于等于这个随机id的记录,并按照id排序,最后只返回前10条结果。\n\n由于子查询只执行一次,所以生成的随机id值在主查询中被重复使用,导致返回的结果中的id是一样的。\n\n如果希望返回原来的id,可以修改SQL语句为:\n\n\nSELECT * FROM txtnovellist ORDER BY RAND() LIMIT 10;\n\n这样会直接在txtnovellist表中随机选择10条记录,并返回它们的所有字段信息,其中包括原始的id值。

SQL随机查询返回相同ID的解决方法

原文地址: https://www.cveoy.top/t/topic/pVZC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录