Mysql 选择行的数值长度大于x

Mysql 选择行的数值长度大于x,mysql,sql,Mysql,Sql,我在数据库中的字段名下有这些值:username和表名:users ... | username | ... -------------------------- | a651378 | | b3789 | | c3125621903 | | d32168 | | e789532 | | f41589964312 | 例如,如何选择数字长度大于6位的用户名 查询应返回上

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

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

     |     b3789    |

     |  c3125621903 |

     |    d32168    |

     |    e789532   |

     | f41589964312 |
例如,如何选择数字长度大于6位的用户名

查询应返回上述值

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

    | f41589964312 |
试试这个:

SELECT * FROM users WHERE CHAR_LENGTH(username) > 7
函数

尝试以下操作:

SELECT * FROM users WHERE CHAR_LENGTH(username) > 7

函数

假设您不知道字符部分的长度,可以使用正则表达式:

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
模式在字符串中匹配。

假设您不知道字符部分的长度,可以使用正则表达式:

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
patterns在字符串中匹配。

应返回0行,我想获取包含长度超过6位数的数字的行。OK已编辑,希望现在清除所有字符串都由一个数字组成,前面有一个字符。我对人道主义绝望应该返回0行,我想得到包含长度超过6个数字的行。OK编辑,希望现在清除所有字符串都由一个数字组成,前面有一个字符。我对人性绝望这将计算整个用户名长度,我想得到的行包含长度超过6位的数字似乎
username
字段包含前面带有字符(a-z)的数字。如果记录是这样的(如我所见),此查询将始终返回您所需的结果。这将计算整个用户名长度,我希望获得包含长度超过6位的数字的行。
username
字段似乎包含前面带有字符(a-z)的数字。如果记录是这样的(如我所见),这个查询总是返回您想要的结果。