MySQL 之间使用替换

MySQL Between by using replace

我有 2 table

组 table 有

用户 table 有

我想检查用户的年龄是否适用于他的性别组 我现在写了这个查询

Select user.id, group.id as 'GroupID', Replace(group.age, ',', ' and '),
if (user.age between Replace(group.age, ',', ' and '), 'Valid', 'Invalid')
from user inner join group on group.gender = user.gender

这会在 if (user.age between , Replace(group.age, ',', ' and '), 'Valid', 'Invalid') 子句上生成查询错误

但是如果我 运行 这就是

Select user.id, group.id as 'GroupID', Replace(group.age, ',', ' and ')
from user inner join group on group.gender = user.gender

这个 运行 没问题,结果就像 1 | 1 | 20 和 40

为什么这个替换在 between 子句中不起作用 有没有其他方法可以检查值是否在逗号分隔的列值之间?

select 
user.id, 
group.id as 'GroupID', 
replace(group.age, ',', ' and '),
if (user.age >= CAST(SUBSTRING(group.age, 1, 2) AS UNSIGNED) and user.age <= CAST(SUBSTRING(group.age, 4, 2) AS UNSIGNED), 'Valid', 'Invalid')
from user 
inner join group 
on group.gender = user.gender