簡體   English   中英

使用crate.io SQL進行文本區分大小寫的搜索

[英]Text case-insitive search with crate.io SQL

crate database搜索數組文本的正確SQL語法是什么?

我的示例表是:

create table 
tasks(user string, entry array(object as (taskid string, eTime timestamp))).  

我嘗試了以下語法錯誤:

select * from program where any(entry['taskid']) ~* '.*cleanup.*';

ANY運算符的正確語法為:

SELECT * FROM tasks WHERE '.*cleanup.*' ~* ANY(entry['taskid']);

但是,目前不支持將PCREANY結合使用。 另一種可能是LIKE謂詞,但是它不區分大小寫(如果以通配符開頭,則可能會非常慢)。

所以最終,您可以...

...或者使用lowercase分析器entry['taskid']列上使用全文索引 (這可能不是最佳解決方案,因為我假設taskid是一個單詞,並且您也想按原樣使用它) ,

...或將數組值拆分為單獨的行,因此您將具有以下架構:

CREATE TABLE tasks (
  user string,
  entry OBJECT AS (
    taskid STRING,
    etime TIMESTAMP
  )
) ...

您可以使用

SELECT * FROM tasks WHERE entry['taskid'] ~* '.*cleanup.*';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM