mysql查询中的正则表达式

Log*_*gan 4 mysql sql

我有像mysql表值

1-2

1-2-3

1-4-5

1-4-5-12-15

15-45-75

1-5-15-25-35-55

55-65-75
Run Code Online (Sandbox Code Playgroud)

我想选择哪些行的编号为5(不是15或25或35).

我尝试过LIKE查询,但它给出了包含行的所有5个值(包括15,35,45,55).

SELECT ... WHERE linkage LIKE '%5%'
Run Code Online (Sandbox Code Playgroud)

我想我们可以通过REGEXP来做到这一点.你能帮我吗?

Ome*_*esh 7

您可以使用FIND_IN_SET执行此操作:

SELECT ... 
WHERE FIND_IN_SET(5, REPLACE(linkage,'-',','));
Run Code Online (Sandbox Code Playgroud)

示例@ sqlfiddle