在年龄栏之间搜索数据

时间:2015-03-01 20:09:48

标签: mysql

下面是我的表格结构。我想在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

1 个答案:

答案 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;

这适用于较小的表,但如果您处理较大的数据集,则表现不佳。