簡體   English   中英

搜索具有相同值的多行sql

[英]search multiple rows with the same values sql

我的數據庫中有一個表,其結構如下:

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會參考彩票表。

您應該嘗試閱讀數據庫規范化

首先-您應該練習“規范化”

其次,更好的語法是

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

等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM