Mysql 检查同一列中的多个值

Mysql 检查同一列中的多个值,mysql,sql,filter,Mysql,Sql,Filter,这就是我的数据库表结构的外观- ID fieldname fieldvalue 1 country USA 2 language English 3 country India 4 language Hindi 因此,我想选择fieldname表示“国家”的行,fieldvalue表示USA和fieldname表示language和fieldvalue表示English 基本上,根据键/值对按多个值进行过滤 我尝试使用AND关键字,但它没有返回任何结果 有什么线索吗

这就是我的数据库表结构的外观-

ID fieldname fieldvalue
1   country   USA
2   language  English
3   country   India
4   language  Hindi
因此,我想选择
fieldname
表示“国家”的行,
fieldvalue
表示
USA
fieldname
表示
language
fieldvalue
表示
English

基本上,根据键/值对按多个值进行过滤

我尝试使用AND关键字,但它没有返回任何结果


有什么线索吗?

试着使用下面的
操作符

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

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

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

字段名不能同时是“国家”和“语言”。但是如果你使用OR,它们都是真的

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

字段名不能同时是“国家”和“语言”。但是如果你使用OR,它们都是真的

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

是的,但问题是它会返回国家是美国还是语言是英语,对吗?@nope,如果字段名或字段值在那里,它会返回项目。@user2475624您希望结果如何?@user2475624所以问题与您所问的完全不同。我需要查看一个查询才能帮助您。@user2475624:不,您不应该继续聊天。你问了一个问题,得到了答案,你应该接受它。正如帕拉多刚才所说,你现在要问的问题与手头的问题完全不同,所以你最好在新的请求中提出一个新问题。是的,但问题是它会返回一个国家是美国或语言是英语,对吗?@不,如果存在字段名或字段值,则返回项。@user2475624您希望结果如何?@user2475624所以这与您所问的问题完全不同。我需要查看一个查询才能帮助您。@user2475624:不,您不应该继续聊天。你问了一个问题,得到了答案,你应该接受它。正如Parado刚才所说,您现在要问的问题与手头的问题完全不同,因此您最好在新请求中提出一个新问题。这种通用设计是一种数据库设计,如果不是真的、真的有必要,您可以避免。也许你应该改变你的设计,这样写查询就容易多了。@ThorstenKettner我同意这样的通用设计是一种数据库设计,如果不是真的、真的有必要的话,你可以避免。也许你应该改变你的设计,这样写查询就容易多了。@ThorstenKettner我同意