Php 检查大型MySQL数据库中的单词是否为字符串

Php 检查大型MySQL数据库中的单词是否为字符串,php,mysql,Php,Mysql,我有一个大型数据库,其中有大约100万用户,每个用户都有自己的代码。所有用户都可以发送带有文本的帖子(如聊天)。我不想检查用户的代码是否在帖子中 我可以建立一个数组,然后像这样循环: // Text sent from $_POST $text = "hey i am zlatan with code1"; // Loaded from MySQL and put into the array $array = array('code1', 'code2'); for ($i = 0; $i

我有一个大型数据库,其中有大约100万用户,每个用户都有自己的代码。所有用户都可以发送带有文本的帖子(如聊天)。我不想检查用户的代码是否在帖子中

我可以建立一个数组,然后像这样循环:

// Text sent from $_POST
$text = "hey i am zlatan with code1";

// Loaded from MySQL and put into the array
$array = array('code1', 'code2');

for ($i = 0; $i < count($array); $i++)
{
    if (strpos($text, $array[$i]) !== false)
    {
        // At least one code was found, exit loop
        $foundCode = true;
        break;
    }
}
//从$\u POST发送的文本
$text=“嘿,我是代码为1的兹拉坦”;
//从MySQL加载并放入阵列
$array=array('code1','code2');
对于($i=0;$i

但我觉得性能很差,搜索1条聊天信息的1M代码。您对此有何看法?我如何改进

让MySql在数据库中搜索它,这就是它的用途。我如何知道用什么文本进行搜索?如果消息是
嘿,我是zlatan,代码为1
,我如何在MySQL中使用它进行搜索?你说的代码是什么。是他们的用户名、数据库中的ID还是完全不同的东西?您还可以提供MySql表的结构吗?搜索项目是否总是单个单词?当单词是较大单词的一部分时,它们是否也应该匹配?代码由一个按长度剥离的md5字符串组成,其中所有代码都是唯一的。它们不代表ID或类似的东西。你为什么需要桌子的结构?这是保存代码的行:
recruit\u link varchar(32)NOT NULL
让MySql在数据库中搜索它,这就是它的目的。我如何知道要搜索的文本?如果消息是
嘿,我是zlatan,代码为1
,我如何在MySQL中使用它进行搜索?你说的代码是什么。是他们的用户名、数据库中的ID还是完全不同的东西?您还可以提供MySql表的结构吗?搜索项目是否总是单个单词?当单词是较大单词的一部分时,它们是否也应该匹配?代码由一个按长度剥离的md5字符串组成,其中所有代码都是唯一的。它们不代表ID或类似的东西。你为什么需要桌子的结构?这是保存代码的行:
recruit\u link varchar(32)NOT NULL