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我同意