Php PostgreSQL搜索数组的所有索引
在我的表“products”中有一个名为“keywords”的列 它的定义如下:Php PostgreSQL搜索数组的所有索引,php,sql,arrays,postgresql,Php,Sql,Arrays,Postgresql,在我的表“products”中有一个名为“keywords”的列 它的定义如下: CREATE TABLE products ( id integer, keywords character varying[] //rest of the definition ommited for clarity ); {music,rock,mp3,nirvana} 列类别中的记录可能如下所示: CREATE TABLE products (
CREATE TABLE products (
id integer,
keywords character varying[]
//rest of the definition ommited for clarity
);
{music,rock,mp3,nirvana}
列类别中的记录可能如下所示:
CREATE TABLE products (
id integer,
keywords character varying[]
//rest of the definition ommited for clarity
);
{music,rock,mp3,nirvana}
我试图在我的网站上实现一个ajax搜索功能,在每个按键上都会调用一个搜索功能
如果用户正在写“m”,我希望它查询数据库并检索“关键字”列数组中包含的行
下面是我现在使用的查询:
SELECT * FROM products WHERE keywords[1] SIMILAR TO $queryString
问题是,使用此查询只能搜索关键字[]的第一个索引
因此,从我前面的例子来看:
{music,rock,mp3,nirvana}
它只搜索第一个索引,即“music”,而不搜索整个数组
如何查询此数组以搜索整个数组
谢谢 试试以下方法:
SELECT * FROM products WHERE ANY(keywords) SIMILAR TO $queryString
根据这里找到的有关阵列的文档 您可以使用
ANY
或ALL
查询数组字段:
SELECT * FROM products WHERE ANY(keywords) SIMILAR TO $queryString
有趣的是,我得到了这个查询的语法错误。错误消息是:查询失败:错误:语法错误位于或接近“ANY”。有什么不对劲吗?