昨晚我花了很多时间尝试不同的mysql查询,以使用mysql / php来简单地检查彩票组合,但仍然无法使其正常工作! Google进行了许多用户的尝试,尤其是在stackoverflow中,没有发现任何方法可以一直提供帮助。
我有一张桌子,上面有所有以前的获胜者号码,我只想查看5个主要号码和2个其他号码,以指出在给定号码之前发生的任何获胜情况
表名:win_archive(9列) 表结构:
id | main_b1 | main_b2 | main_b3 | main_b4 | main_b5 | extra_b1 | extra_b2 | win_date
1 . 22 | 10 | 5 | 59 | . 61 . | 1 | 9 . | 2/1/2011
2 . 43 | 23 | 11 | 76 | . 25 . | 13 | 9 . | 30/3/2015
3. ...
试图使用mysql IN子句
SELECT id,
main_b1,
main_b2,
main_b3,
main_b4,
main_b5,
extra_b1,
extra_b2,
win_date
WHERE main_b1 IN ( 21, 44, 55, 22, 11, 1, 4 )
如果号码超过1个就行不通,那么我就无法检查它们,另外,我们设置的多余球与主球的设置不同,这意味着组合中可能存在相同的数字,但是-就像其中一个主球组,另外2个球中的一个...
期望给php一个5 + 2的数字,然后通过这个mysql查询得到类似的东西:
案例A:匹配2个主要球:存档中发现3场胜利
日期:行为:xx-xx-xx-xx-xx-y-y
日期:行为:xx-xx-xx-xx-xx-y-y
日期:行为:xx-xx-xx-xx-xx-y-y
情况B:匹配2个主球和1个额外的球:存档中找到1个胜利
情况C:匹配3个主球和2个额外的球:找到1个胜利
真的很复杂吗?在线有数百个站点可以检查彩票组合,以为检查/查询将全部结束。.
任何提示将不胜感激...
答案 0 :(得分:2)
这是一个示例查询,我认为它将实现您想要的。您只需要根据要搜索的结果来更改IN
表达式中的值:
SELECT
main_b1, main_b2, main_b3, main_b4, main_b5, extra_b1, extra_b2,
((main_b1 IN (22, 23, 10, 11, 76)) +
(main_b2 IN (22, 23, 10, 11, 76)) +
(main_b3 IN (22, 23, 10, 11, 76)) +
(main_b4 IN (22, 23, 10, 11, 76)) +
(main_b5 IN (22, 23, 10, 11, 76))) AS main,
((extra_b1 IN (5, 9)) +
(extra_b2 IN (5, 9))) AS extra,
win_date
FROM win_archives
HAVING main >= 3 OR main = 2 AND extra > 0
ORDER BY main DESC, extra DESC, win_date DESC
我在此SQLFiddle中创建了更多示例数据:
INSERT INTO win_archives
(`id`, `main_b1`, `main_b2`, `main_b3`, `main_b4`, `main_b5`, `extra_b1`, `extra_b2`, `win_date`)
VALUES
(1, 22, 10, 5, 59, 61, 1, 9, '2011-01-02'),
(2, 43, 23, 11, 76, 25, 13, 9, '2015-03-30'),
(3, 22, 10, 5, 76, 61, 1, 4, '2014-06-02'),
(4, 43, 9, 11, 76, 25, 5, 9, '2012-08-07'),
(5, 22, 10, 5, 59, 61, 5, 12, '2016-12-02'),
(6, 22, 23, 11, 76, 10, 5, 6, '2017-07-19'),
(7, 22, 10, 5, 59, 61, 1, 9, '2018-09-02'),
(8, 43, 23, 11, 76, 22, 13, 8, '2005-04-11')
;
使用此示例数据,输出为:
main_b1 main_b2 main_b3 main_b4 main_b5 extra_b1 extra_b2 main extra win_date
22 23 11 76 10 5 6 5 1 2017-07-19
43 23 11 76 22 13 8 4 0 2005-04-11
43 23 11 76 25 13 9 3 1 2015-03-30
22 10 5 76 61 1 4 3 0 2014-06-02
43 9 11 76 25 5 9 2 2 2012-08-07
22 10 5 59 61 1 9 2 1 2018-09-02
22 10 5 59 61 5 12 2 1 2016-12-02
22 10 5 59 61 1 9 2 1 2011-01-02
答案 1 :(得分:0)
不是答案。评论太久了...
标准化的模式可能看起来像这样:
绘制
${__eval(${__FileToString(test.xml,,)})}
Draw_detail
draw_id | date
1 | 2011-01-02
2 | 2015-03-30