我如何确定使用PHP代码,例如,我有一个具有值的变量
我的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) 我正在研究的项目是在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::PredicateBuilder是26号线.仍然不知道哈希是如何empty?在那一点,但也许其他人做.
这是有趣的.我正在调查菲利普的评论,看看为什么他这样做,因为它似乎只是一个澄清,但他是正确的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) 我是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注入攻击.
我有一组连续的行,我想根据它们的主键获得,这是一个自动递增的整数.假设没有洞,两者之间是否有任何表现:
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) 我需要一些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)
非常感谢您的帮助
如下面的两个查询所示,我们发现它们都运行良好.然后我很困惑为什么我们应该使用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) 我有以下查询,
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)
为什么第一个查询没有返回任何结果?如果我有任何错误请纠正我.
我正在尝试选择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)
我尝试过使用<和>等等.但是,我总是得到两个结果.任何帮助将非常感激.
我有以下元素:
<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)
但我不太喜欢那种解决方案