如何使用array_rand数组?

时间:2016-08-07 03:24:29

标签: mysql arrays

我有一张桌子。我想创建一个小型彩票游戏。

t1的数据如下。

+---------+------------------+-------------------+
| ID      | typeid           | createtime        |
+---------+------------------+-------------------+
| 1       | 1                | 123456            |
| 2       | 2                | 123123            |
| 3       | 1                | 12312312312       |
| 4       | 1                | 13123123          |
| 5       | 1                | 123dddddaasd123   |
+------------------------------------------------+

我想在typeid = 1

时选择获胜者

我这样的查询(实际使用query的{​​{1}}或fetch_all?)

fetch_first

我想用

$qsid = DB::fetch_all("SELECT * FROM ".DB::table('t1')." WHERE typeid = 1"); 选择获胜者,所以应该像array_rand

然后我可以使用最终结果来设置胜利者。或者对其他更好方法的任何建议?

谢谢。

2 个答案:

答案 0 :(得分:2)

我们可以通过各种方式进行,让我们按照以下方式进行。

第一种方式:let's do it on mysql level

select ID from t1 where typeid =1 order by RAND() limit 1;

上面的查询将选择mysid的随机行,其中typeid为1。

第二路:let's do it on coding level

我们需要select ID from t1 where typeid =1并将其保存在任何数组中,然后从数组中选择随机元素

int array[]={1,3,4,5}
int finalResultId = array[java.util.new Random().nextInt(array.length)]

我希望它会帮助你。感谢

答案 1 :(得分:2)

  

尝试这个新的

SELECT `ID` 
FROM `t1` 
WHERE `ID` IN (
               SELECT `ID` 
               FROM `t1` 
               WHERE `typeid` = 1)
ORDER BY RAND()
LIMIT 1