mysql 查询字段中绝对匹配条件的语句是什么?
例如:我在表ABC中的number字段,里面有10个值,1234567101215然后我用一组条件来查询number字段的内容是否有匹配这组条件,条件是:14613一般来...
例如:我在表ABC中的number字段,里面有10个值,1 2 3 4 5 6 7 10 12 15
然后我用一组条件来查询number字段的内容是否有匹配这组条件,条件是:1 4 6 13
一般来说查询结果会显示 1 4 6 这三个值,但这个不是我想要的,我希望匹配 1 4 6 13 这四个为一组的数,如果number字段中没有这四个数,只有三个,则不显示 1 4 6 这个结果。
请问查询语句怎么写,谢谢
一般的查询语句是这样的
SELECT number FROM ABC WHERE number IN ('1',‘4','6','13')
以上语句会显示结果 1 4 6 这三个数,但是我希望如果不是完全匹配 1 4 6 13 这四个数的,就不显示结果,也就是没有完全匹配 展开
然后我用一组条件来查询number字段的内容是否有匹配这组条件,条件是:1 4 6 13
一般来说查询结果会显示 1 4 6 这三个值,但这个不是我想要的,我希望匹配 1 4 6 13 这四个为一组的数,如果number字段中没有这四个数,只有三个,则不显示 1 4 6 这个结果。
请问查询语句怎么写,谢谢
一般的查询语句是这样的
SELECT number FROM ABC WHERE number IN ('1',‘4','6','13')
以上语句会显示结果 1 4 6 这三个数,但是我希望如果不是完全匹配 1 4 6 13 这四个数的,就不显示结果,也就是没有完全匹配 展开
3个回答
展开全部
只用IN操作符不对头,IN的逻辑就是“或”,number IN ('1','4','6','13')就相当于number='1' or number='4' or number='6' or number='13',而你的number中没有13(10个值里面没13),则或上等于13的,过滤效果就等同于没加这个条件,于是查出3条记录。
按你的意图,似乎是应该查出0条记录,大概需要写成如下命令:
select number from ABC
where number IN ('1','4','6','13')
and exists( select 1 from ABC where number='1' )
and exists( select 1 from ABC where number='4' )
and exists( select 1 from ABC where number='6' )
and exists( select 1 from ABC where number='13' )
按你的意图,似乎是应该查出0条记录,大概需要写成如下命令:
select number from ABC
where number IN ('1','4','6','13')
and exists( select 1 from ABC where number='1' )
and exists( select 1 from ABC where number='4' )
and exists( select 1 from ABC where number='6' )
and exists( select 1 from ABC where number='13' )
追问
谢谢,你的方法很管用。另外我突然想到还有一个问题,就是如果使用同一条件“1 4 6 13” 来查询同一个表中的多个字段的时候,可以用一条查询语句中实现吗?谢谢
展开全部
绝对匹配就是查询字段跟条件相等
比如:学生表里面,你要查询姓名叫‘张三’的人
select * from Student where name='张三'
比如:学生表里面,你要查询姓名叫‘张三’的人
select * from Student where name='张三'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用like 或者=
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
=判断值是否为某个特殊的固定值
例子:
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
查询city 为Beijing的记录
select * from persons where City = 'Beijing'
结果
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:
SELECT * FROM Persons WHERE City LIKE '%g'
结果集:
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
=判断值是否为某个特殊的固定值
例子:
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
查询city 为Beijing的记录
select * from persons where City = 'Beijing'
结果
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:
SELECT * FROM Persons WHERE City LIKE '%g'
结果集:
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |