选择行的数字长度大于x

时间:2016-02-06 08:13:04

标签: mysql sql

我在字段名称下的数据库中有这些值:username和表名:users

 ... |  username   | ...
--------------------------
     |    a651378   |

     |     b3789    |

     |  c3125621903 |

     |    d32168    |

     |    e789532   |

     | f41589964312 |

例如,如何选择号码长度大于6位的用户名

如上所述,查询应该返回

... |  username    | ...
--------------------------
    | c3125621903  |

    | f41589964312 |

2 个答案:

答案 0 :(得分:4)

试试这个:

SELECT * FROM users WHERE CHAR_LENGTH(username) > 7

CHAR_LENGTH功能

答案 1 :(得分:0)

假设你不知道字符部分有多长,你可以使用正则表达式:

select u.*
from users u
where u.username regexp '^.*[0-9]{7}.*$';

实际上,这可以简化为:

select u.*
from users u
where u.username regexp '[0-9]{7}';

使用正则表达式时,我只是要小心。 LIKE个模式匹配整个字符串(从开头到结尾)。 REGEXP个模式在字符串中匹配。