使用相同的值sql搜索多行

时间:2015-08-03 20:29:00

标签: mysql database

我的数据库中有一个表,它具有以下结构:

ID | Date | Ball1 | Ball2 | Ball3 | Ball4 | Ball5 | Ball6 | Ball7 | BonusBall

所有Ball行都只是整数。

我现在要做的是编写一个选择查询,选择其中包含多个相同值的所有行。

例如,所有包含1和12的行。

我尝试了以下查询,但这并不完全符合我的要求:

SELECT * FROM number 
WHERE ball1 OR ball2 OR ball3 OR ball4 OR ball5 OR ball6 OR bonusball IN (1,12);

我是否在正确的轨道上?有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你的解决方案已经很好了,但是如果你想为每个字段检查它,我相信你必须这样写:

SELECT * FROM test
WHERE (ball1 = 1 OR ball2 = 1 OR ball3  = 1  
OR ball4  = 1 OR ball5 = 1 OR ball6  = 1 OR bonusball = 1)
AND (ball1 = 12 OR ball2 = 12 OR ball3 = 12  
OR ball4 = 12 OR ball5 = 12 OR ball6 = 12 OR bonusball = 12);

虽然我不建议在高流量环境中运行此查询。更好的想法是有两张桌子。一个包含'彩票'和另一个球#39;球可以参考彩票表。

您应该尝试阅读Database normalization

答案 1 :(得分:0)

首先 - 你应该练习'规范化'

第二个更好的语法是

SELECT * 
FROM number 
WHERE ball1 in (1,12) 
OR ball2 in (1,12) 
OR ball3 in (1,12)