我在SQL中有一些需要内容过滤的表,主要用于亵渎。我希望允许我的应用程序插入他们想要的数据,并让服务器用星号替换任何亵渎语言,这样我就不需要在各种平台上实现过滤。
我知道触发器可以用于将来,但是,我正在尝试确定完成此任务的最有效方法。
以下是一些细节: 有两个表我需要确保内容过滤,因为它们是面向公众的:反馈和用户。以下是特定字段:
表格 - >领域
反馈 - >主题,消息 用户 - >名字,姓氏,别名
我对MySQL比较新,并且知道要替换值表可能是最容易修改的选项。
我的问题是:
我如何使用第三个表中的关键词加入2个表并用星号替换特定的字符?
到目前为止,我有这些查询来查找感兴趣的列,只是不确定如何合并替换函数以及同时检查两者的能力:
SELECT u.firstname, u.lastname, u.username FROM users u, feedback f, terms t;
SELECT f.subject, f.message FROM feedback f;
答案 0 :(得分:0)
最好创建一个新列(命名为DomainTypeForRegionA
或类似)并将asterix存储在其中,而不是编写alias
查询并执行find-replace。以下是优点:
SELECT
中处理此方案意味着您只会在插入或更新记录时执行此操作,而在trigger
查询中,每次读取都需要替换。SELECT
,因为(a)反馈和用户表的每个值都需要与所有 join
表的值进行比较和( b)需要对可能包含这些单词的所有列执行此操作。因此,它更像是terms
而不是cursor
。