例如我们现在要在一个表中查出 ip 在 192.168.1.3 到 192.168.1.20 之间的 ip 地址,我们首先想到的就是通过字符串的比较来获取查找结果,但是如果我们通过这种方式来查找,结果集将为空,原因在于字符串的比较是一个字符一个字符的比较,当对应字符相同时,就比较下一个,直到遇到能区分大小的字符,才停止比较,后面的字符也将忽略。

  如果通过字符串的比较就会查出空集,因为前者已经比后者大了。

  我们可以通过 INET_ATON(IP) 函数把 ip 转换为数字,然后在进行比较,这样就可以得出我们需要的结果:

  select * from ip_table where inet_aton(ip) > inet_aton('192.168.1.3') and inet_aton(ip) < inet_aton('192.168.1.20');

相关文章:

  • 2021-05-23
  • 2022-01-11
  • 2022-12-23
  • 2021-07-15
  • 2022-12-23
  • 2022-02-10
  • 2022-01-07
  • 2021-08-31
猜你喜欢
  • 2021-05-04
  • 2021-07-06
  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案