我正在寻找一个MySQL唯一的解决方案来搜索彩票的列表与数字绘制 .
我有自己的列中有四个数字的门票:ball1,ball2,ball3,ball4 . 这些不一定按升序排列 .
查询应该只返回行以进行进一步的PHP处理 .
我可以通过PHP查看所有结果,但我正在寻找更有效的方法 .
有任何想法吗?
考虑这个例子 .
假设我们想要匹配这四个球中至少有三个组合的所有结果(2,4,5,10)
我们可以这样做......
SELECT * FROM lottery; +----+-------+-------+-------+-------+ | id | ball1 | ball2 | ball3 | ball4 | +----+-------+-------+-------+-------+ | 1 | 2 | 5 | 10 | 4 | | 2 | 5 | 9 | 4 | 1 | | 3 | 3 | 6 | 4 | 9 | | 4 | 4 | 8 | 2 | 3 | | 5 | 8 | 9 | 4 | 10 | | 6 | 9 | 2 | 1 | 3 | | 7 | 2 | 3 | 7 | 8 | | 8 | 3 | 8 | 2 | 6 | | 9 | 2 | 5 | 1 | 10 | | 10 | 3 | 2 | 9 | 5 | +----+-------+-------+-------+-------+ SELECT id , GROUP_CONCAT(ball ORDER BY ball) balls FROM ( SELECT id,ball1 ball FROM lottery UNION SELECT id,ball2 ball FROM lottery UNION SELECT id,ball3 ball FROM lottery UNION SELECT id,ball4 ball FROM lottery ) x WHERE ball IN (2,5,10,4) GROUP BY id HAVING COUNT(*) >= 3; +----+----------+ | id | balls | +----+----------+ | 1 | 2,4,5,10 | | 9 | 2,5,10 | +----+----------+
1 回答
考虑这个例子 .
假设我们想要匹配这四个球中至少有三个组合的所有结果(2,4,5,10)
我们可以这样做......