首页 > 解决方案 > 如何与随机和限制联合选择

问题描述

我正在尝试随机化我的训练数据或机器学习。在我的表中有一个只保存两个值“A”和“B”的列。但是当我使用随机查询时,显示的两个值都不相等,并且我的代码不起作用。如何解决这个问题?我在 MySQL TT 上真的很糟糕

我在 XAMPP 上使用 MySQL

SELECT * FROM
(
      (SELECT * FROM table WHERE table.category = 'A' LIMIT 10) as t1
      UNION ALL
      (SELECT * FROM table WHERE table.category = 'A' LIMIT 10) as t2
)ORDER BY RAND()

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 5 行的 'as t2) ORDER BY RAND() LIMIT 0, 25' 附近使用正确的语法

标签: mysqldatabaseselectrandomunion

解决方案


您不能为 中的表提供别名UNION,只能在FROM或中JOIN。所以使用

SELECT * FROM (
    (SELECT * FROM table1 WHERE table1.category = 'A' LIMIT 10)
    UNION ALL
    (SELECT * FROM table1 WHERE table1.category = 'B' LIMIT 10)
) AS t1
ORDER BY RAND()

演示


推荐阅读