SQL过滤和替换

时间:2017-08-18 22:53:10

标签: mysql

我在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;

1 个答案:

答案 0 :(得分:0)

最好创建一个新列(命名为DomainTypeForRegionA或类似)并将asterix存储在其中,而不是编写alias查询并执行find-replace。以下是优点:

  • SELECT中处理此方案意味着您只会在插入或更新记录时执行此操作,而在trigger查询中,每次读取都需要替换。
  • 您无法真正使用SELECT,因为(a)反馈和用户表的每个值都需要与所有 join表的值进行比较和( b)需要对可能包含这些单词的所有列执行此操作。因此,它更像是terms而不是cursor
  • 的用例