假设我有一种情况,用户可以在文本框中发布代码并将其存储在所有特殊字符都存储为 htmlentities 的表中。
如何在表中搜索字符“<”而不搜索其等效的 html 实体?postgresql 是否有内置功能?
感谢您的时间
假设我有一种情况,用户可以在文本框中发布代码并将其存储在所有特殊字符都存储为 htmlentities 的表中。
如何在表中搜索字符“<”而不搜索其等效的 html 实体?postgresql 是否有内置功能?
感谢您的时间
我不太确定我明白你真正想要什么。但是,如果您想知道如何有效地搜索包含 < 字符的表中的行,您可以像这样在表达式上创建索引:
CREATE INDEX index_name ON table (position('<' in column));
然后,您可以通过执行以下操作搜索其所需列包含该模式的行:
SELECT * FROM table WHERE position('<' in column) > 0;
当然,我假设您的表中的大多数行都不会包含这样的模式,否则这个索引不会有太大用处。
注意:如果您使用 PostgreSQL >= 9.1,您还可以借助pg_trgm
模块
创建索引。这也将使您能够仅使用一个索引进行其他文本搜索,并且在您需要这些索引时可能会更有用。
CREATE INDEX index_name ON table USING gist (column gist_trgm_ops);
然后你可以像这样搜索你的行:
SELECT * FROM table WHERE column LIKE '%<%';
有关更多信息,请查看官方文档中的pg_trgm。