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)的数字。如果记录是这样的(如我所见),这个查询总是返回您想要的结果。