例如,我有一個表如何選擇行時列必須滿足多個值?
name | ability
kevin|say
kevin|scream
nike |say
我想只得到響應凱文,尋找say
和scream
時。參數計數可能會改變。
例如,我有一個表如何選擇行時列必須滿足多個值?
name | ability
kevin|say
kevin|scream
nike |say
我想只得到響應凱文,尋找say
和scream
時。參數計數可能會改變。
您可以group by
和having
做到這一點:
SELECT name
FROM t
WHERE ability in ('say', 'scream')
GROUP BY name
HAVING COUNT(*) = 2;
一種方式來做到這一點是:
SELECT * FROM YourTableName WHERE name='kevin' AND ability IN ('say','scream');
另一種方式來做到這一點:
SELECT * FROM YourTableName WHERE name='kevin' AND (ability='say' || ability='scream');
祝你好運!
當然我查詢執行之前都沒有名字的價值。 – Sild
也許這樣吧:'SELECT * FROM YourTableName WHERE ability IN('say','scream');'祝你好運! –
這應該工作:
SELECT name FROM tablename WHERE ability IN ('say', 'scream') GROUP BY name
或者:
SELECT DISTINCT name FROM tablename WHERE ability IN ('say', 'scream')
編輯:哦,你要尋找的是具有都能力名字......然後,你可以這樣做:
SELECT DISTINCT name from tablename WHERE name IN (SELECT name FROM tablename WHERE ability = 'say') AND name IN (SELECT name FROM tablename WHERE ability = 'scream')
或者更好的是,你可以添加一個HAVING
子句第一個查詢:
SELECT name FROM tablename WHERE ability IN ('say', 'scream') GROUP BY name HAVING count(*) = 2
很好的解決方案!謝謝! – Sild