簡體   English   中英

Firebird:使用SQL搜索所有字段?

[英]Firebird: Using SQL to search all fields?

我有一個SQL查詢,該查詢將用於搜索最有可能發生很大變化的字段。 即將添加更多字段。 我該如何使用類似SQL這樣的簡單查詢來編寫sql查詢,而無需明確指定字段即可在al字段中進行搜索?

就像是:

select * from MYTABLE where CONCAT(*) like '%mySearchTerm%';

是否有捷徑可尋?

我認為Firebird的唯一方法是使用計算字段來合並要搜索的字段:

create table T (
  foo varchar(24) not null,
  bar varchar(24) not null,
  ...
  SearchField varchar(1024) generated always as (foo || '##' || bar)
)

select * from T where SearchField like '%mySearchTerm%';

因此,每次更改表(添加或刪除字段)時,您還必須更改計算出的字段,但查詢將保持不變。 但這會對性能產生一些影響,因為您在進行合並時確實不需要……

如果表中的記錄和字段很多,並且需要高性能,建議您搜索全文索引或Firebird全文搜索。 它不是本機功能。 但是有一些第三方解決方案。 看到此鏈接: http : //www.firebirdfaq.org/faq328/

暫無
暫無

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

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