使用MySql REGEX仅获取包含一位或两位数字的一位数字FOM字符串

时间:2018-10-15 14:46:12

标签: mysql regex

可以说我在数据库"15|26|8""156|6|24"中有这些字符串记录。我需要一个myslq RegEx语句,它可以找到我6 NOT 2615 NOT 156。 Sql Regex有可能吗?

示例(常规LIKE):SELECT * FROM db where field LIKE "%6%" 这句话使我都记录了(不是我想要的)

仅当我的号码IN是第一个实例(即6

时,才能使用"6|9|24"

使用field REGEXP '6'可获得与field LIKE "%6%"相同的结果

Regex的新功能,因此遵循本指南https://dev.mysql.com/doc/refman/8.0/en/regexp.html有点困难。任何想法都非常感谢。

1 个答案:

答案 0 :(得分:0)

FIND_IN_SET('6', REPLACE(col, '|', ','))

使用示例:

mysql> SELECT FIND_IN_SET('6', REPLACE("15|26|8", '|', ','));
+------------------------------------------------+
| FIND_IN_SET('6', REPLACE("15|26|8", '|', ',')) |
+------------------------------------------------+
|                                              0 |
+------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT FIND_IN_SET('6', REPLACE("156|6|24", '|', ','));
+-------------------------------------------------+
| FIND_IN_SET('6', REPLACE("156|6|24", '|', ',')) |
+-------------------------------------------------+
|                                               2 |
+-------------------------------------------------+
1 row in set (0.00 sec)

另请参阅SUBSTRING_INDEX()