选择用户状态,然后在一个查询中选择更少的日期

时间:2017-09-07 17:09:02

标签: mysql sql subquery

我有这个问题:

SparkFiles

此回报:

import org.apache.spark.SparkFiles

spark.sparkContext.addFile("http://myurl.com/file.csv")
spark.read.csv(SparkFiles.get("file.csv"))

这应该是纯粹的:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>

using namespace std;


int main()
{
    string input;
    char* output;
    vector<string> name;

    while (input != "quit") {
        cin >> input;

        if (input.length == 1) {
            for (int i = 0; i < name.size; i++) {

                output = &name[i].at(0);

                if (input == output) {
                    cout << name[i];
                }
            }
        }
        else {

            name.push_back(input);
        }
    }

    //system("pause");
    return 0;
}

如何根据旧日返回用户状态,条件少于今天?

2 个答案:

答案 0 :(得分:0)

这是您的查询:

SELECT *
FROM tableusers
WHERE status = 'off' IN (SELECT DATE(mydate) AS mydate
                         FROM tableusers 
                         WHERE mydate < CURDATE()
                        );

你觉得它有什么问题吗?大多数数据库都会因IN附近的语法错误而失败。

这是一个非常不寻常的构造,所以我不确定它是否被解析为:

WHERE (status = 'off') IN (SELECT DATE(mydate) FROM tableusers WHERE mydate < CURDATE());

或:

WHERE status = ( 'off' IN (SELECT DATE(mydate) FROM tableusers WHERE mydate < CURDATE()) )

我猜测后者(基于返回某些行的事实)。 “off IN”部分返回一个布尔值,将其视为0. 'on''off'都将转换为数字以进行比较 - 因此0 = 0和任一值匹配。

我建议您将日期与日期进行比较。但是,我不知道你真正想要的逻辑。

答案 1 :(得分:0)

很抱歉,但我没有清楚地提出您的问题,而且我没有足够的声誉来发表评论。以下是您可以尝试的一种解决方案:

SELECT * FROM tableusers WHERE status = 'off' AND mydate < CURDATE()

这将返回所有行,其中状态 关闭 mydate 小于 CURDATE()就是今天。

请详细说明您的问题,以便我们能够清楚地理解它。您的查询的目的是什么?你期待什么输出?