2

我将数据存储在varchar(日期+附加信息)中。我想过滤范围之间的数据。

例如:

我有datesubact如下专栏。

2013/07/01,S
2013/07/26,A
2013/07/05,S
2013/07/06,S
.
.

我想过滤范围between 2013/07/01 to 2013/07/06。我该如何为此输入Mysql查询?...请任何人帮助我...

4

3 回答 3

4

永远,永远,永远不要在一列中存储多个值!

就像你现在看到的那样,这只会让你头疼。规范化您的表格。

它应该是

date_column (type = date) | other_column (type = char(1))
--------------------------+------------------------------
2013/07/01                |    S
2013/07/26                |    A
2013/07/05                |    S
2013/07/06                |    S
于 2013-08-09T13:40:18.323 回答
0

划分日期和附加信息并将它们放在单独的列中。之后,您可以查询如下:

SELECT _yourColumnName FROM tbl_yourTableName
WHERE _date
BETWEEN '2013/07/01' AND '2013/07/06'

永远不要在单个列中留下多个值。它只会给你和那些将基于你自己的工作的人带来问题。

于 2013-08-09T13:44:24.753 回答
0

这应该工作

SELECT  * from Tbl WHERE  date('2013/07/01,S')  BETWEEN @startDate and @EndDate  ;

看到这个SQLFiddle

于 2013-08-09T13:45:15.523 回答