我有一个SQL查询,用于搜索最有可能发生很大变化的字段。我将添加更多字段。如何使用简单的方法编写SQL查询,这样可以在不显式指定字段的情况下搜索字段?
类似的东西:
select * from MYTABLE where CONCAT(*) like '%mySearchTerm%';
有一种简单的方法吗?
答案 0 :(得分:3)
我认为Firebird的唯一方法是使用calculated field汇总您要搜索的字段:
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%';
因此,每次更改表(添加或删除字段)时,您还必须更改计算字段,但查询将保持不变。 但是这对性能有一些影响,因为你正在做你真正不需要的连续......
答案 1 :(得分:1)
如果您在表格中有很多记录和字段并且需要高性能,我建议您搜索全文搜索Firebird的全文索引。 它不是本机功能。但是有一些第三方解决方案。 请看这个链接:http://www.firebirdfaq.org/faq328/