[英]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.