0

我有一个 SQL 查询,它将用于搜索最有可能发生很大变化的字段。即将添加更多字段。我怎样才能编写一个简单的 sql 查询,这样可以在不明确指定字段的情况下搜索 al 字段?

就像是:

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

是否有捷径可寻?

4

2 回答 2

3

我认为 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%';

因此,每次更改表(添加或删除字段)时,您还必须更改计算字段,但查询将保持不变。但这对性能有一些影响,因为你正在做你真的不需要的连接......

于 2013-05-27T14:02:11.777 回答
1

如果表中记录和字段较多,需要高性能,建议搜索全文索引或全文搜索Firebird。它不是本机功能。但是有一些第三方解决方案。请参阅此链接:http ://www.firebirdfaq.org/faq328/

于 2013-05-27T22:08:55.613 回答