mysql - 搜索具有相同值的多行sql

标签 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);

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

最佳答案

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

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);

虽然我不建议在高流量环境中运行此查询。一个更好的主意是有两个表。一个包含“彩票”,另一个包含“球”。 Balls 将引用彩票表的位置。

您应该尝试阅读 Database normalization .

关于mysql - 搜索具有相同值的多行sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31796203/

相关文章:

mysql - 如何使用大量 INNER JOINS 优化简单的 MySQL 查询

database - 无法从 mysqldump.exe 解析版本号

MySQL:从多个表连接时出现重复值

java - 在后台检查互联网

c++ - 通过桌面应用程序/安全性查询数据库

php - 获取数组时出错 - CRUD PHP/MYSQL

php - 用 PHP 显示 MYSQL。想要将选定的行移动到另一个 sql 表并从现有表中删除

php - MySQL 性能和优化,在一个配置文件页面上有多个查询,它们可以减少吗?

php - MySQL 将人口统计数据存储在多个表中

两台服务器访问MySQL单DB