2013-10-30 147 views
0

有没有在Google Fuision Tables Query上实现此功能的方法?Google Fusion Tables或替代

...WHERE (('Field 1' = 'Value 1') OR ('Field 2' = 'Value 1')) 

我知道OR没有在Google Fusion Tables上实现,但我想知道这个查询是否可能。谢谢。

+0

[Fusion Tables过滤条件OR]的可能重复(http://stackoverflow.com/questions/10438720/fusion-tables-filter-conditions-or) –

回答

0

对于相对较少的条件,您可以使用IN,如SQL reference中所述。因此,在你的榜样,这将是

WHERE 'Field 1' IN ('Value 1', 'Value 2') 
+0

感谢您的回答。但我有不同的情况。我输入一个值来同时搜索两个不同的字段。不要在一个字段中输入两个值进行搜索。 – JetPro

+0

那么你不能用Fusion Tables来做到这一点。对不起,我错过了他们是不同的字段名称。 –

0

实际上有,解决缺少OR条款的一些解决方法。无论他们值得付出努力,我都会让读者去判断。解决这个

的方法之一是表达一种条款方面条款。三个条款是准确的,我们结束了3次不同的融合表的查询,像这样:

SELECT * FROM <table_id> WHERE 'Field 1' = 'Value 1' AND 'Field 2' = 'Value 1' 

SELECT * FROM <table_id> WHERE 'Field 1' = 'Value 1' AND 'Field 2' NOT EQUAL TO 'Value 1' 

SELECT * FROM <table_id> WHERE 'Field 1' NOT EQUAL TO 'Value 1' AND 'Field 2' = 'Value 1' 

这三个查询的综合结果是有效的什么OR查询,这样就造成了它可用于融合表。

另一种方法是执行OR条款(又名NOR)的逆如下:

SELECT ROWID FROM <table_id> WHERE 'Field 1' NOT EQUAL TO 'Value 1' AND 'Field 2' NOT EQUAL TO 'Value 1' 

该查询返回,将已经由OR子句丢弃行的ROWIDs。因此,如果我们要获取表中所有ROWID的列表并删除NOR查询生成的那些ID,我们将留下一个OR查询会产生的行ID。我们可以反过来使用这些ROWID来编写查询来提取完整​​的行数据。