我的MySQL表中有一列显示年份。 例如:
Table: Information ID | Year_sold --- -------- 1 | 2002-2010 2 | 2005-2015 3 | 2011-____ 4 | 1975-1978
我会询问该表是否有特定年份的数据。 示例:
SELECT * FROM Information WHERE Year_sold = '2012';
这当然行不通,但如果结果应该是ID 2和3,我怎么能输入SQL查询。
如果该项目仍处于活动状态且已售出,则年份将显示为ID 3," 2011 -____"。我可以替换" ____"如果需要的话。
答案 0 :(得分:3)
使用BETWEEN
,LEFT
和SUBSTRING_INDEX
功能。
SELECT ID, Year_sold
FROM Information
WHERE '2012' BETWEEN LEFT(Year_sold,4) AND SUBSTRING_INDEX(Year_sold,'-',-1)
输出
ID Year_sold
2 2005-2015
3 2011-____
SQL小提琴:http://sqlfiddle.com/#!9/7df7b7/1/0
如果可能的话,我会重新开始你的表结构,并有类似的东西:
表:信息
ID | Year_sold_from | Year_sold_to
--- ------------------------------
1 | 2002 | 2010
2 | 2005 | 2015
3 | 2011 | null
4 | 1975 | 1978