标签: between

MySQL:使用BETWEEN的多个AND查询?

我见过一位同事在这些条件下使用它来从表中获取用户:

SELECT * FROM users WHERE gender ='male' 
AND activated='yes' 
AND date_registered BETWEEN '$date1' AND '$date2' 
Run Code Online (Sandbox Code Playgroud)

他说有一个问题(当它AND activated='yes'放在那里时它没有输出任何行,但没有抛出MySQL错误.

你能不这样做吗?你需要把它放在方括号或疯狂的东西关联BETWEENAND

顺便说一下,日期格式正确.

php mysql between

3
推荐指数
1
解决办法
8452
查看次数

优化BETWEEN日期声明

我需要帮助优化PostgreSQL查询,该查询使用BETWEEN带有timestamp字段的子句.

我有2张桌子:

ONE(int id_one(PK), datetime cut_time, int f1 . . .) 
Run Code Online (Sandbox Code Playgroud)

包含大约3394行

TWO(int id_two(PK), int id_one(FK), int f2 . . .) 
Run Code Online (Sandbox Code Playgroud)

包含大约4000000行

有两个的PK B树索引id_oneid_two,在FK id_onecut_time.

我想执行如下查询:

select o.id_one, Date(o.cut_time), o.f1, t.f2 
from one o
inner join two t ON (o.id_one = t.id_one)
where o.cut_time between '2013-01-01' and '2013-01-31';
Run Code Online (Sandbox Code Playgroud)

此查询在大约7秒内检索大约1.700.000行.

报告分析报告下面报告:

"Merge Join  (cost=20000000003.53..20000197562.38 rows=1680916 width=24) (actual time=0.017..741.718 rows=1692345 loops=1)"
"  Merge Cond: (c.coilid = hf.coilid)"
"  ->  Index Scan …
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing between postgresql-performance

3
推荐指数
1
解决办法
7303
查看次数

在单独的字段中使用年,月和日之间创建查询

我在Postgresql的不同字段中拥有一个包含年,月和日的表,但是我需要使用'between'这些字段进行查询.我尝试了一些疯狂的事情,但没有任何效果......有谁知道帮帮我?

防爆表:

CREATE TABLE my_table
(
  id serial NOT NULL,
  day integer NOT NULL,
  month integer NOT NULL,
  year integer NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)

sql postgresql between

3
推荐指数
2
解决办法
1392
查看次数

Prolog:在/ 3之间,最后是一个列表

我的问题因为这个问题而出现 你能在纯粹的prolog之间写/ 3吗?

是否有可能在/ 3之间进行,第三个参数是一个列表,所以如果你问

between(2,6,X).
Run Code Online (Sandbox Code Playgroud)

它来了

X=[2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

而不是喜欢

X=2
X=3
X=4
....
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚这必须如何工作(我所有的解决方案都不起作用..)我是Prolog的初学者,所以我不知道..

抱歉英文不好..

谢谢你的帮助 :)

list prolog between

3
推荐指数
1
解决办法
4850
查看次数

MySQL:开始日期和结束日期之间的正确日期范围为两个字段

我有下表叫做季节

+----+--------+------------+------------+
| id | cost   | start      | end        |
+----+--------+------------+------------+
| 33 |    255 | 2014-01-05 | 2014-04-16 |
| 17 |    357 | 2014-04-17 | 2014-04-19 |
| 65 | 191.25 | 2014-04-20 | 2014-07-10 |
| 49 |    255 | 2014-07-11 | 2014-08-23 |
| 81 | 191.25 | 2014-08-24 | 2014-12-18 |
+----+--------+------------+------------+
Run Code Online (Sandbox Code Playgroud)

我试图使用以下查询获得开始和结束之间的日期范围.

SELECT 
    *
FROM
    seasons
WHERE
    (start BETWEEN '2014-01-05' AND '2014-01-05' OR end BETWEEN '2014-01-05' AND '2014-01-05');
Run Code Online (Sandbox Code Playgroud)

如果开始日期恰好在字段上的值上开始,我就能得到结果集.

+----+------+------------+------------+
| id | …
Run Code Online (Sandbox Code Playgroud)

mysql date-range between

3
推荐指数
1
解决办法
1797
查看次数

背景:和背景图像之间的差异:

快速简单的问题在下面的外部CSS页面示例中;

body {
  background-image: url(background.jpg);
}
header {
  background: url(background.jpg);
}
Run Code Online (Sandbox Code Playgroud)

我知道他们正在影响不同的元素选择器,我的问题是使用背景与背景图像有什么区别?是否可以访问另一个特定属性?谢谢,麻烦您了.

css background between background-image difference

3
推荐指数
1
解决办法
1万
查看次数

两列之间的mysql选择工作得太慢了

我有这个问题:

SELECT `country`
FROM `geoip_base`
WHERE 1840344811 BETWEEN `start` AND `stop`
Run Code Online (Sandbox Code Playgroud)

它是使用索引(使用,但解析表的大部分)并且工作太慢.我试过使用ORDER BY和LIMIT,但它没有帮助.

"start <= 1840344811 AND 1840344811 <= stop"的工作方式类似.

CREATE TABLE IF NOT EXISTS `geoip_base` (
  `start` decimal(10,0) NOT NULL,
  `stop` decimal(10,0) NOT NULL,
  `inetnum` char(33) collate utf8_bin NOT NULL,
  `country` char(2) collate utf8_bin NOT NULL,
  `city_id` int(11) NOT NULL,
  PRIMARY KEY  (`start`,`stop`),
  UNIQUE KEY `start` (`start`),
  UNIQUE KEY `stop` (`stop`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)

表有57,424行.

解释查询"......按开始限制1开始和停止开始":使用键stop并获得24099行.没有顺序和限制,mysql不使用键并获取所有行.

mysql indexing select between

2
推荐指数
1
解决办法
3265
查看次数

SQL(Teradata)选择数据

我有一个与SQL相关的问题(特别是teradata).我必须生成1天的报告.

我怎样才能实现它?

例如,在ms访问中,我可以这样做

WHERE DT>=#2011-01-01# and DT<=#2011-0101#
Run Code Online (Sandbox Code Playgroud)

大家伙呢?(SQL Server,而不是MS Access).

我知道可以使用

DT between '2011-09-01' and '2011-09-02'
Run Code Online (Sandbox Code Playgroud)

但这种方法并不准确.如何使用ranged WHERE语句指定1天?

我道歉,我没有SQL访问权限,我无法测试它; 因此我要求专业人士的建议.

sql between teradata

2
推荐指数
1
解决办法
5万
查看次数

如何使用Varchar(10)格式mm/dd/yyyy之间查询日期范围

我试图只显示"DateDue"在去年的记录.问题是我的日期是Varchar(10)的格式,因为我的数据源是从供应商那里进入我的数据库的.显然,使用此查询未正确过滤日期.是否可以将此(为了比较日期范围而临时)转换为在查询中使用的正确日期数据类型,但不能永久地更改该列的类型?

SELECT `DocNum`, `DateDue` 
FROM `prod_po_list` 
WHERE `DateDue` BETWEEN (DATE_FORMAT(curdate( ) - INTERVAL 365 DAY , '%m/%d/%Y' ))
AND DATE_FORMAT( CURDATE( ) , '%m/%d/%Y' )
Run Code Online (Sandbox Code Playgroud)

mysql varchar date between

2
推荐指数
1
解决办法
1263
查看次数

SQL中BETWEEN的正确方法

什么是正确的使用方法,因为树屋和我的老师对这个问题有不同的答案.

选择1999年至2004年的所有电影.

树屋回答:

SELECT * FROM movies WHERE year BETWEEN 1999 AND 2004;
Run Code Online (Sandbox Code Playgroud)

老师回答:

SELECT * FROM movies WHERE year >= 1999 AND year <= 2004;
Run Code Online (Sandbox Code Playgroud)

哪种方法正确?

sql between

2
推荐指数
1
解决办法
252
查看次数