在mysql

时间:2015-05-25 17:59:51

标签: mysql sql mysql-workbench

我在mysql中有一个表。 该表有一列是UserName。

现在,它中有常规名称和一些IP地址。 如何在查询中仅显示IP地址?

请记住,有这样的名字

  

A.B.C.D

所以,如果我写这个

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

它不会为我做这个工作。 我只需要IP地址。

2 个答案:

答案 0 :(得分:4)

您可以使用正则表达式:

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}$';

答案 1 :(得分:0)

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