冻结世界 2023-11-24 10:40 采纳率: 20%
浏览 5

order by rand() limit 1,放在子查询出现多种结果

想通过“order by rand() limit 1”,随机获取一条数据,但在执行以下sql时获取的结果会出现多种情况;
sql:select a.column1 from table1 a where a.column1 = (select column1 from table2 order by rand() limit 1);(table2中无空数据,table1中包含table2中的所有数据)
结果一:查询结果为空

img

结果二:查询结果为多条数据

img

结果三:查询结果正常

order by rand() limit 1 放在子查询是有什么问题么?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-24 12:27
    关注

    【相关推荐】



    • 这篇博客: SQL注入之order by注入与limit注入中的 4.基于rand()的盲注(数字型) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      rand() 函数可以产生随机数介于0和1之间的一个数

      当给rand() 一个参数的时候,会将该参数作为一个随机种子,生成一个介于0-1之间的一个数,

      种子固定,则生成的数固定

      order by rand:这个不是分组,只是排序,rand()只是生成一个随机数,每次检索的结果排序会不同

      order by rand(表达式)
      

      当表达式true和false时,排序结果是不同的,所以就可以使用rand()函数进行盲注了。
      例:

      order by rand(ascii(mid((select database()),1,1))>96)
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月24日

悬赏问题

  • ¥15 Groimp使用疑问
  • ¥15 c++ 主窗口里面的菜单如何脱离主窗口
  • ¥15 MDK–ARM里一直找不到调试器
  • ¥15 oracle中sql查询问题
  • ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
  • ¥100 代写个MATLAB代码,有偿
  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
  • ¥15 Dev-c++打字不出现中文,但出现日文
  • ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
  • ¥15 无源定位系统的时差估计误差标准差