You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用SQL检测用户输入文本是否包含禁用关键词?

可以仅通过SQL实现禁用关键词检测

你提供的示例语句逻辑是反向的,正确的做法是检查用户提交的文本是否包含表中的任意禁用关键词,而非让关键词去匹配用户文本。

核心实现语句

仅判断是否存在禁用词(高效)

如果只需要知道用户文本是否包含禁用词,用EXISTS子查询效率最高,找到匹配项后会立即终止查询:

SELECT EXISTS(
    SELECT 1 FROM deny_keywords
    WHERE $user_text LIKE CONCAT('%', word, '%')
) AS has_deny_keyword;

返回结果中has_deny_keyword为1表示存在禁用词,0表示不存在。

获取具体匹配的禁用词

如果需要知道具体是哪些关键词被匹配到,可以直接查询:

SELECT word FROM deny_keywords
WHERE $user_text LIKE CONCAT('%', word, '%');

该语句会返回所有在用户文本中出现的禁用关键词。

重要注意事项

实际使用时必须用参数化查询传递$user_text变量,绝对不能直接将变量拼接进SQL语句,否则会引发严重的SQL注入安全问题。

内容的提问来源于stack exchange,提问作者omid hv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:15:44