Mysql 检查字符串是否包含数字
Mysql check if string contains numbers
我想数一数 table 中不同磁铁的数量。
它们由大约 20 个元素的字符串定义,我对其中的前五个感兴趣。
他们都有相同的模式:
mgn##
单词 mgn 后跟两个数字。我必须指定第四和第五个元素是整数,因为有些行在 mgn.
之后有字母
到目前为止,我尝试了不同的查询,只是在猜测。
mysql> SELECT DISTINCT(SUBSTRING(magnet, 1, 5)) FROM magcom WHERE magnet LIKE '%mgn\d\d%';
mysql> SELECT DISTINCT(SUBSTRING(magnet, 1, 5)) FROM magcom WHERE magnet LIKE '%mgn##%';
这些给出了消息 empty set
。
如有任何帮助,我们将不胜感激。
使用RLIKE
:
WHERE magnet RLIKE 'mgn[0-9]{2}'
如果您只想匹配字符串的开头:
WHERE magnet RLIKE '^mgn[0-9]{2}'
我想数一数 table 中不同磁铁的数量。
它们由大约 20 个元素的字符串定义,我对其中的前五个感兴趣。
他们都有相同的模式:
mgn##
单词 mgn 后跟两个数字。我必须指定第四和第五个元素是整数,因为有些行在 mgn.
之后有字母到目前为止,我尝试了不同的查询,只是在猜测。
mysql> SELECT DISTINCT(SUBSTRING(magnet, 1, 5)) FROM magcom WHERE magnet LIKE '%mgn\d\d%';
mysql> SELECT DISTINCT(SUBSTRING(magnet, 1, 5)) FROM magcom WHERE magnet LIKE '%mgn##%';
这些给出了消息 empty set
。
如有任何帮助,我们将不胜感激。
使用RLIKE
:
WHERE magnet RLIKE 'mgn[0-9]{2}'
如果您只想匹配字符串的开头:
WHERE magnet RLIKE '^mgn[0-9]{2}'