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

为何在MySQL中使用LIKE查询包含10.1.1.2的记录?

为什么你的MySQL LIKE查询能匹配到该记录?

这是因为MySQL的LIKE操作符是基于子串匹配逻辑工作的,咱们一步步拆解你的场景:

  • 首先看你的查询条件:dst like '%10.1.1.2%'
    • 这里的%是通配符,代表任意长度(包括0)的任意字符,整个条件的意思是:只要dst字段的内容里,包含10.1.1.2这个连续的子串,就会被筛选出来。
  • 再看被匹配到的dst值:10.1.1.1-10.1.1.254
    • 这个字符串里的后半段是10.1.1.254,其中完整包含了10.1.1.2这个子串(从第13个字符到第19个字符),完全符合LIKE的匹配规则,所以这条记录被成功检索出来。

如果你需要精确匹配完整IP怎么办?

如果你的实际需求是匹配完整的10.1.1.2IP地址,而不是包含它的子串,那可以调整查询方式:

  1. 直接用精确等于:dst = '10.1.1.2'
  2. 用正则表达式匹配完整单词(避免部分匹配):
    select ordering, dst from alist where ordering=2 and dst REGEXP '[[:<:]]10.1.1.2[[:>:]]';
    
    这里[[:<:]]和[[:>:]]是MySQL的单词边界匹配符,确保匹配的是完整的10.1.1.2,而不是10.1.1.254这类包含它的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:23:10