查询返回表中的所有数据

时间:2015-08-14 23:05:00

标签: sql google-fusion-tables

我试图弄清楚为什么这个查询返回表中的所有数据:

State IN ('North Dakota') AND ('Homicide Offenses' > 0 OR 'Assault Offenses' > 0)

我已经包含了我用于生成此语句的代码。该代码适用于单个搜索,例如:

State IN ('North Dakota') AND 'Homicide Offenses' > 0

但不适用于其他任何事情。感谢您提供的任何见解。

function getWhere() {
    var caps = getCAPS(); //Returns an array of user selections
    var states = getStates(); //Returns an array of selected states
    var where = "State IN (" + states.join(",") + ')';

    if (caps.length) {
        if (caps.length == 1) {
            where = where + " AND " + caps.pop();
        } else {
            where += " AND (";
            while(caps.length) {
                if(caps.length == 1) {
                    where += caps.pop() + ")";
                } else {
                    where += caps.pop() + " OR ";
                }
            }   
        }
    }

    return where;
}

3 个答案:

答案 0 :(得分:0)

列中的这些列或值是?可能需要将where语句更改为如下所示:

State IN ('North Dakota') AND Offence IN ('Homicide Offenses' , 'Assault Offenses')

答案 1 :(得分:0)

试试这个。 国家IN('北达科他州')和('凶杀案罪行'> 0或'袭击罪行'> 0)和州(' #39;北达科他州')'

这应该对你有用。

答案 2 :(得分:0)

如果两者都是 itemSortOrder
State IN ('North Dakota') AND ('Homicide Offenses' > 0)
确实按预期工作,我是否检查

  

< FILTER_CONDITION>
   布尔表达式(返回TRUE或FALSE)。只有条件为TRUE的表行才会包含在SELECT的结果中。使用AND将多个过滤器组合到一个查询中。 [...] OR支持

(来自Fusion Tables REST API - Row and Query SQL Reference)实际上应理解为:否 State IN ('North Dakota') AND ('Assault Offenses' > 0) 。 (......以及当观察到的效果被忽略时它是否会导致。)

(此" OR 支持"同时显示在文档的ORSELECT CREATE VIEW部分。 ..)。