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