php - 从4张 table 中随机挑选

标签 php mysql sql random

我想出一个好标题有点困难,但我现在会解释。

我正在开发一款在线游戏。我正在尝试建立销毁武器的选项。

我有 4 种武器 - 攻击、防御、巡逻和 spy 。 巡逻和 spy 武器有3个武器等级,攻击和防御有15个等级。

我为每个带有 col 的类别创建了一个表格。命名为 w1,w2,w3,w4... 和当然用户的 ID。

我给了每个等级点数,例如 w15 值 15 点,w2 值 2 点,我构建了一个函数来计算攻击者摧毁了防御者多少点数。

我卡住的地方是如何随机挑选武器?

假设攻击者摧毁了值(value) 100 点的武器。所以它可以是 100 件巡逻等级 1 的武器,或 25 件武器等级 1 的每个类别,或 10 件武器排名 10。 我需要它在类别(攻击、防御、巡逻和 spy )和武器(w1、w2、w3 ..)之间随机出现。另外我需要它在防守者拥有的武器数量的限制内,他不能失去比他拥有的更多。

非常感谢!!我知道我写了一个很长的问题

最佳答案

首先用这种方式 UNION 你的四个表

SELECT * FROM (
  SELECT * FROM w1
  UNION
  SELECT * FROM w2
  UNION
  SELECT * FROM w3
  UNION
  SELECT * FROM w4
)

然后计算你的权重函数并随机选择

... ORDER BY RAND() LIMIT 5;

关于php - 从4张 table 中随机挑选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26200646/

相关文章:

php - 地理定位和 GeoIP 替代方案

php - 我在查询中需要 Sql 帮助

mysql - 寻找更好的解决方案 - 与类型字符串比较的长列表 AND 运算符

php - MYSQL LIKE 类别由于 % 返回错误查询

sql - 如何获取当前日期 - 使用 Postgresql 的两周日期?

php - 尽管至少需要一行,但未找到查询结果

php - 使用 PHP 更新 MySQL 数据库,将所有列设置为 0 而不是 1

mysql - 如何使用索引优化 InnoDB 上的 COUNT(*) 性能

mysql - 从消息线程中获取嵌套的未读消息

mysql - 与 MySQL 中尾随空格的比较