SELECT * FROM sample WHERE id = '2' OR uid = '1';
我使用cqlsh客戶在cqlsh錯誤OR操作卡桑德拉cqlsh
Bad Request: line 1:36 missing EOF at 'OR'
是否有可能在卡桑德拉or
操作?
SELECT * FROM sample WHERE id = '2' OR uid = '1';
我使用cqlsh客戶在cqlsh錯誤OR操作卡桑德拉cqlsh
Bad Request: line 1:36 missing EOF at 'OR'
是否有可能在卡桑德拉or
操作?
雖然doanduyhai是正確的原則,有「IN」操作符,如果你需要在限制同一列:
cqlsh:demodb> SELECT * FROM sample WHERE id IN ('2','1');
可用的操作類型在很大程度上取決於數據模型。我強烈推薦the data model section in datastax' documentation。
小心,WHERE子句不適用於同一列:* WHERE id ='2'或uid ='1'; *。第一個條件適用於** id **列,第二個條件適用於** uid **列。 IN子句在這裏不起作用 – doanduyhai
我強調了建議的用例。您的查詢似乎有點奇怪,並且表明需要對數據模型進行更多的工作。如果您需要查詢兩個完全不同的索引,則可能需要創建兩個不同組織的表/列族,以獲得最佳讀取性能。 – omnibear
@omnibear謝謝你的答案..但在你的情況下,你是比較值與單列名稱作爲ID。我需要將兩列作爲ID和UID進行比較。 doanduyhai是對的,但我擔心它與兩個合成查詢合併時效率如何。如果我合併兩個結果查詢,我認爲它可能會變得複雜,因爲我有很多數據在表中 –
那麼,如何在CQL中實現OR操作(如SQL) –
您應該觸發2個查詢,然後在客戶端合併結果(集合)。現在沒有其他辦法了。 – doanduyhai
可以爲我提供任何示例,因爲我是cassandra的新手 –