在 mysql 中的 table 中查找 IP 地址

find IP addresses in a table in mysql

我在 mysql 中有一个 table。 table 有一列是用户名。

现在,里面有常规的名字,还有一些IP地址。 如何在查询中仅显示 IP 地址?

记住还有这样的名字

a.b.c.d

所以,如果我写这个

SELECT *
FROM table1
WHERE UserName LIKE '%.%.%.%'

它不会为我完成这项工作。 我只需要IP地址。

您可以使用正则表达式:

SELECT *
FROM table1
WHERE UserName REGEXP '^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$';

注:Select * is Evil

编辑:

根据 MySQL 版本,这可能是更好的选择:

SELECT *
FROM table1
WHERE UserName REGEXP '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$';
Select *
 From table1
WHERE UserName REGEXP '^([0-9]{1,3}\.){1,3}[0-9]{1,3}$'