检查同一列中的多个值

Checking for multiple values with in same column

这是我的数据库 table 结构的样子 -

ID fieldname fieldvalue
1   country   USA
2   language  English
3   country   India
4   language  Hindi

所以我想 select fieldname 是 'country' 并且 fieldvalueUSA 并且 fieldnamelanguagefieldvalueEnglish.

基本上是根据键/值对按多个值过滤。

我试过使用 AND 关键字,但它 returns 什么都没有

有线索吗?

尝试使用 OR 运算符,如下所示

select *
from tab
where (fieldname = 'country' and  fieldvalue = 'USA')
or (fieldname = 'language' and  fieldvalue = 'English')

一个字段名不能同时是 'country' 和 'language'。但是如果你使用 OR,它们都是真的。

SELECT *
FROM table
WHERE ( fieldname = 'country' AND fieldvalue = 'USA' )
   OR ( fieldname = 'language' AND fieldvalue = 'English');