gpt4 book ai didi

postgresql - 在 PostgreSQL 中使用 htmlentities 存储的字段,如何搜索(sql select)特殊字符,例如 < 而不进行 < 搜索?

转载 作者:行者123 更新时间:2023-11-29 13:05:32 24 4
gpt4 key购买 nike

假设我有这样一种情况,用户可以在文本框中发布代码,我将它存储在一个表中,所有特殊字符都存储为 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在官方文档中。

关于postgresql - 在 PostgreSQL 中使用 htmlentities 存储的字段,如何搜索(sql select)特殊字符,例如 < 而不进行 < 搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com