首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL使用BETWEEN检索数据

MySQL使用BETWEEN检索数据
EN

Stack Overflow用户
提问于 2013-06-17 12:34:06
回答 2查看 90关注 0票数 1

我得到了一个类似下面名为dtr的表。我在使用BETWEEN查询时遇到问题。像这样:

代码语言:javascript
复制
$between = mysql_query("Select * from dtr where State Between 'Check In' And 'Check Out'");

我希望它所做的就是在in、Check In和Check Out之间获取状态为Out和Out的行。但这似乎行不通。我还应该使用什么?还是这样做?因为我得到的都是签到和签出结果。

代码语言:javascript
复制
   Name      | AC-No.|    Date   |    Time      |    State   | Exception| Operation
-------------+-------+-----------+--------------+------------+----------+----------
Johnny Starks| 1220  | 5/13/2013 | 11:45:18 PM  |  Check In  |   OK     |
Johnny Starks| 1220  | 5/14/2013 | 12:46:58 AM  |  Out       |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 12:52:41 AM  |  Out Back  |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 02:12:50 AM  |  Out       |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 02:43:11 AM  |  Out Back  |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 05:46:58 AM  |  Out       |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 06:22:41 AM  |  Out Back  |   Out    |
Johnny Starks| 1220  | 5/14/2013 | 16:55:12 AM  |  Check Out |   OK     |
EN

回答 2

Stack Overflow用户

发布于 2013-06-17 12:40:24

将查询与IN一起使用

代码语言:javascript
复制
Select * from dtr 
where State IN('Check In','Check Out','Out','Out Back')

BETWEEN主要用于datenumeric数据。

票数 2
EN

Stack Overflow用户

发布于 2013-06-17 14:05:16

只有在以下情况下,才能对您的范围使用字符串比较:

代码语言:javascript
复制
'Check In' < 'Out' < 'Out Back' < 'Check Out'

因此,您必须使用IN运算符并使用grouping来计算每个状态出现的次数:

代码语言:javascript
复制
SELECT `State`, COUNT(*)
FROM dtr 
WHERE State IN ('Check In', 'Out', 'Out Back', 'Check Out')
GROUP BY `State`;

结果:

代码语言:javascript
复制
Check In  | 1
Out       | 3
Out Back  | 3
Check Out | 1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17140463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档