下面是我的表格结构。我想在agemin列之间选择数据
ID Age PercenteM Sex
1 18-24 0.0545 M
2 25-29 1.456 F
3 30-34 2.043 M
ie:Select * from table where age = 28
答案 0 :(得分:2)
有解决方案,但由于您的数据格式化,它们不会很好或很容易使用。正如其他人所评论的那样,最好将该列拆分为两个(age_min和age_max)。基本上你要做的就是要求你打破年龄栏的数字部分。如果你的格式是一致的,你可以做这样的事情。我假设你的意图是根据你写的查询返回最小年龄为28岁的行。
Select * from table where substring_index(age, "-", 1)=28;
如果您希望目标年龄落在所述年龄范围内的所有行,则需要稍微不同的查询。
Select * from table
where substring_index(age, "-", 1)<=28
and substring(age, locate("-")+1)>=28;
这适用于较小的表,但如果您处理较大的数据集,则表现不佳。