You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL同一列多值查询无结果求助:SELECT语句AND条件问题

解决MySQL多值匹配查询的问题

你的查询语句SELECT * FROM users WHERE Number='1212' AND Number='0921'之所以没有返回结果,核心原因是同一个Number字段不可能同时等于两个不同的值——AND逻辑要求两条条件必须同时满足,这在实际数据中是不可能成立的,自然查不到任何记录。

要实现匹配多个值的需求,你可以用以下两种常用且高效的方法:

方法一:使用IN关键字(推荐)

IN是MySQL中专门用于匹配列值在指定集合中的语法,写法简洁、可读性强,尤其适合匹配多个固定值的场景:

SELECT * FROM `users` WHERE Number IN ('1212', '0921');

方法二:使用OR关键字

如果需要为每个匹配值搭配额外的条件(比如不同的状态过滤),可以用OR来组合多个判断:

SELECT * FROM `users` WHERE Number='1212' OR Number='0921';

额外注意事项

  • 数据类型要匹配:如果Number是数值类型(比如INT),就去掉值的引号(写成IN(1212, 921));如果是字符串类型,必须保留引号,避免隐式类型转换影响查询性能或结果准确性。
  • 大数据量场景:当匹配的数值超过10个时,IN的性能通常优于多个OR组合,MySQL会对IN列表做自动优化处理。

内容的提问来源于stack exchange,提问作者user9578149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:37:09