在mysql数据库中检查字符串中的单词.(实时)



我有一个存储单词的mysql数据库。现在我想检查一个字符串,看看它是否包含数据库中的一个或多个单词。

例如:

var desc = 'you are a stupid man';
db.connect((err) => {
if(err){
throw err;
}
console.log('Connected!');
let sql = 'SELECT `word` FROM `words`';
db.query(sql, (err, result) => {
if(err){
throw err;
}
if(desc.toLowerCase().includes(result)){
console.log('Dont use words like {word*}');
}
});
});

*找到的单词。

实际上,我只需要将mysql数据库的单词存储在一个数组中,或者不存储?但我就是搞不明白它是怎么工作的。也许这是一些非常简单的事情,我只是没有进入我的脑海。

该方法还必须允许当我将一个新词插入数据库时,即使不重新启动脚本,也会搜索它

问候,nih

这是一个需要解决的有趣挑战,它教会了您数据库和应用程序的分离性质。

您的脚本(如果使用数据库(将自动提取新记录(使用查询(,因此无需担心搜索所有项目。除非您将结果存储在变量/缓存中,但我假设您每次都使用一个新的查询。

您可以持有一个表:带有ID和VARCHAR列的banned_words,然后在其中插入任何新的禁止单词。

您可以在这里利用MySQL,并使用查询:

SELECT * FROM words WHERE `word`='*{word}*'

我会阅读评论中的答案,它更具体地针对您的问题,如果您有字符串数组,在这里使用in将是更好的选择

这可能不是确切的语法(自从我使用SQL以来已经有一段时间了(,但应该为您指明正确的方向。尽可能使用您的数据库,您可以直接使用它来查找您需要的确切数据(即,单词存在吗?(。

甚至可以确定使用类似查询的行数,从而避免实际检索数据的需要。(如果您基本上使用的是条件,则不需要变量中的数据(。

最新更新