MySQL 之间通过使用替换

标签 mysql select join between

我有 2 张 table

  • 用户

组表有

  • 身份证
  • 年龄(这是范围。23,40)是指 23 至 40
  • 性别

用户表有

  • 身份证
  • 年龄
  • 性别

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

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

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

最佳答案

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

关于MySQL 之间通过使用替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602659/

相关文章:

php - 使用数组创建动态 MySQL 查询 - PHP

MySQL 查询 : Query with conditional statements

join - 从数据库中获取带有连接实体的整个实体并避免延迟加载,nHibernate QueryOver

mysql - 关于 Web (http) 请求和可扩展性的数据库并发连接数

mysql - 如何更改 where 条件以从其他数据库表中读取数字?

javascript - jquery如何获取选中的选项id

mysql - 如果第一行将被随机化,其余行应按标准排序,如何选​​择行

mysql - 在 Zen Cart 中创建联接和 COUNT()

mysql - SQL 内连接是正确的方法吗?

php - 如何使用 php/pdo 从 MySQL 数据库删除友谊并检查是否成功