0
所以,我有以下表和PHP的一個變量具有這些值:14,16通過不同行的Mysql檢查組合
如何檢查如果上述數字組合的存在表?上面的組合存在與ID 3.我不想檢查數字的順序(例如「16,14」或「14,16」)
我希望你不會感到困惑!
所以,我有以下表和PHP的一個變量具有這些值:14,16通過不同行的Mysql檢查組合
如何檢查如果上述數字組合的存在表?上面的組合存在與ID 3.我不想檢查數字的順序(例如「16,14」或「14,16」)
我希望你不會感到困惑!
你只需要GROUP BY
與COUNT
和HAVING
:
SELECT id
FROM tablename
WHERE optid IN(14, 16)
GROUP BY id
HAVING COUNT(DISTINCT optid) = 2;
WHERE optid IN(14, 16)
將確保ID有這些數字。COUNT DISTINCT
將刪除所有ID期望那些有兩個optid
。結果:
| id |
|----|
| 3 |
| 4 |
需要注意的是:此查詢會給你那些id
有至少14 and 16
。因此,它就會給你帶來3和4
但是如果你想要那些有整整14和16並沒有更多的東西,那麼試試這個:
SELECT id
FROM tablename
WHERE optid IN(14, 16)
AND id not in (SELECT id from tablename where optid not in(14,16))
GROUP BY id
HAVING COUNT(DISTINCT optid) = 2;
這會給你:
| id |
|----|
| 3 |
非常感謝你! 2天我正在尋找這個! :) –
歡迎來到Stack Overflow。你已經嘗試過這麼做了嗎?請回顧[我如何問一個好問題](https://stackoverflow.com/help/how-to-ask)。堆棧溢出不是一種編碼服務。預計您會在發佈之前研究您的問題,並嘗試親自編寫代碼***。如果您遇到* specific *,請返回幷包含[Minimal,Complete和Verifiable示例](https://stackoverflow.com/help/mcve)以及您嘗試的內容摘要,以便我們提供幫助。 – FluffyKitten
3和4都有14和16,不僅是3?!! – 2017-09-23 11:03:44