标签: between

PHP:如何确定变量的值是否介于两个不同的常量值之间?

我如何确定使用PHP代码,例如,我有一个具有值的变量

  • 在1到10之间,或
  • 在20到40之间?

php if-statement between intervals

24
推荐指数
5
解决办法
12万
查看次数

日期上的dplyr过滤器

我的tbl_df:

    > p2p_dt_SKILL_A%>%
    + select(Patch,Date,Prod_DL)%>%
    + head()
      Patch       Date Prod_DL
    1  P1 2015-09-04    3.43
    2 P11 2015-09-11    3.49
    3 P12 2015-09-18    3.45
...
    4 P13 2015-12-06    3.57
    5 P14 2015-12-13    3.43
    6 P15 2015-12-20    3.47
Run Code Online (Sandbox Code Playgroud)

我想rows根据日期选择所有,例如,如果Date大于2015-09-04和小于2015-09-18

结果应该是:

      Patch       Date          Prod_DL
      P1        2015-09-04    3.43
      P11       2015-09-11    3.49
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但它返回空的空向量.

p2p_dt_SKILL_A%>%
                select(Patch,Date,Prod_DL)%>%
                filter(Date > "2015-09-04" & Date <"2015-09-18")
Run Code Online (Sandbox Code Playgroud)

回报:

> p2p_dt_SKILL_A%>%
+                 select(Patch,Date,Prod_DL)%>%
+                 filter(Date > 2015-09-12 & Date <2015-09-18)
Source: local data table [0 x …
Run Code Online (Sandbox Code Playgroud)

r date filter between dplyr

23
推荐指数
2
解决办法
4万
查看次数

为什么Rails使用带有范围的where子句哈希语法向查询添加"OR 1 = 0"?

我正在研究的项目是在RDS上使用MySQL(特别是mysql2 gem).

当我在where语句中使用包含范围的条件的哈希时,我的查询有点奇怪.

User.where(id: [1..5])
Run Code Online (Sandbox Code Playgroud)

User.where(id: [1...5])
Run Code Online (Sandbox Code Playgroud)

分别导致以下查询:

SELECT `users`.* FROM `users` WHERE ((`users`.`id` BETWEEN 1 AND 5 OR 1=0))
SELECT `users`.* FROM `users` WHERE ((`users`.`id` >= 1 AND `users`.`id` < 5 OR 1=0))
Run Code Online (Sandbox Code Playgroud)

查询工作完全正常,因为OR FALSE实际上是无操作.我只是想知道为什么Rails或ARel将这个片段添加到查询中.

编辑

看起来可以解释这一点的线ActiveRecord::PredicateBuilder26号线.仍然不知道哈希是如何empty?在那一点,但也许其他人做.

编辑2

这是有趣的.我正在调查菲利普的评论,看看为什么他这样做,因为它似乎只是一个澄清,但他是正确的1..5 != [1..5].前者是1到5的包含范围,后者是第一个元素前者的数组.我尝试将这些放入ARel where调用,以查看生成的SQL,但OR 1=0不存在!

User.where(id: 1..5) #=> SELECT "users".* FROM "users"  WHERE ("users"."id" BETWEEN 1 AND 5)
User.where(id: 1...5) …
Run Code Online (Sandbox Code Playgroud)

mysql ruby-on-rails between

18
推荐指数
1
解决办法
2921
查看次数

如何在日期范围内搜索,使用ActiveRecord模型?

我是Ruby和ActiveRecord的新手.我目前需要修改和现有的代码片段来在select中添加日期范围.目前的作品是这样的:

ReportsThirdparty.find(:all, :conditions => {:site_id=>site_id, :campaign_id=>campaign_id, :size_id=>size_id})
Run Code Online (Sandbox Code Playgroud)

现在,我需要添加一个范围,但我不知道如何做BETWEEN>=<=运算符.我想我需要的是类似的东西:

ReportsThirdparty.find(:all, :conditions => {:site_id=>site_id, :campaign_id=>campaign_id, :size_id=>size_id, :row_date=>"BETWEEN #{start_date} AND #{end_date}")
Run Code Online (Sandbox Code Playgroud)

即使这确实有效,我知道在这里使用插值会让我受到SQL注入攻击.

ruby sql activerecord ruby-on-rails between

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

BETWENEN和IN与MySQL或SQL之间是否存在性能差异?

我有一组连续的行,我想根据它们的主键获得,这是一个自动递增的整数.假设没有洞,两者之间是否有任何表现:

SELECT * FROM `theTable` WHERE `id` IN (n, ... nk); 
Run Code Online (Sandbox Code Playgroud)

和:

SELECT * FROM `theTable` WHERE `id` BETWEEN n AND nk;
Run Code Online (Sandbox Code Playgroud)

mysql sql between

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

SQL查询不在两个日期之间

我需要一些SQL Query帮助.

我试图选择表test_table中的所有记录,这些记录不适合两个日期'2009-12-15'和'2010-01-02'.

这是我的表结构:

`start_date` date NOT NULL default '0000-00-00',
`end_date` date NOT NULL default '0000-00-00'

-----------------------------
 **The following record should not be selected:**

`start_date`, `end_date`
'2003-06-04', '2010-01-01'
Run Code Online (Sandbox Code Playgroud)

我的查询:

SELECT * 

FROM `test_table` 
WHERE 

CAST('2009-12-15' AS DATE) NOT BETWEEN start_date and end_date 
AND 
CAST('2010-01-02' AS DATE) NOT BETWEEN start_date and end_date
Run Code Online (Sandbox Code Playgroud)

知道我的查询选择错误记录的原因吗?我应该将查询中的值的顺序更改为:

start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

sql between

15
推荐指数
2
解决办法
9万
查看次数

为什么在没有它的情况下使用BETWEEN运算符?

如下面的两个查询所示,我们发现它们都运行良好.然后我很困惑为什么我们应该使用BETWEEN因为我发现BETWEEN在w3school中找到的不同数据库中表现不同

SELECT *
FROM employees
WHERE salary BETWEEN 5000 AND 15000;

SELECT *
FROM employees
WHERE salary >= 5000
AND salary <= 15000;
Run Code Online (Sandbox Code Playgroud)

sql between

15
推荐指数
4
解决办法
2万
查看次数

Datetime BETWEEN语句在SQL Server中不起作用

我有以下查询,

SELECT * FROM LOGS 
WHERE CHECK_IN BETWEEN CONVERT(datetime,'2013-10-17') AND CONVERT(datetime,'2013-10-18')
Run Code Online (Sandbox Code Playgroud)

此查询不返回任何结果,但以下查询返回结果,

SELECT * FROM LOGS WHERE CHECK_IN >= CONVERT(datetime,'2013-10-17')
Run Code Online (Sandbox Code Playgroud)

为什么第一个查询没有返回任何结果?如果我有任何错误请纠正我.

sql-server between sql-server-2008

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

Mysql:选择两列之间的值

我正在尝试选择2列之间的值.这是我的数据集

id    from    to    price
1     0.00    2.00  2.50
2     2.00    3.00  3.00
3     3.00    4.00  4.50
Run Code Online (Sandbox Code Playgroud)

我的目标,如果我的值为2,则选择ID为1的行(在from和to之间).所以这是我正在使用的查询:

select * from table where 2 between from and to;
Run Code Online (Sandbox Code Playgroud)

以下是MySQL在执行此查询时返回的结果:

id    from    to    price
1     0.00    2.00  2.50
2     2.00    3.00  3.00
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果如下:

id    from    to    price
1     0.00    2.00  2.50
Run Code Online (Sandbox Code Playgroud)

我尝试过使用<和>等等.但是,我总是得到两个结果.任何帮助将非常感激.

mysql sql between

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

如何在android中切换按钮及其文本之间的空格?

我有以下元素:

<Switch
    android:text="Data about client?"
    android:id="@+id/connected" />
Run Code Online (Sandbox Code Playgroud)

但在设计师的开关按钮及其文本"关于客户端的数据?" 非常粘在一起.我试过间隔空间?并且"那样:

android:text="Data about client?    "
Run Code Online (Sandbox Code Playgroud)

但我不太喜欢那种解决方案

text element space between

14
推荐指数
4
解决办法
5633
查看次数