PHP/SQL 更新字段,如果选择匹配,则带有单词


PHP/SQL Update Field with word if selection matches

我一直在寻找以下解决方案,但到目前为止还没有运气。

我有一个页面,在文本区域中包含产品功能列表,名为"功能" - 这是从数据库中的表中填充的。

当我单击一个按钮时,下面的代码将运行,代码的作用是获取列表中的每个单词,检查"描述"字段是否包含该单词,如果包含,则它将该单词放在名为"功能"的字段中。

这工作正常,但我有 3,000 种不同的"功能"和 100,000 条产品描述要检查 - 因此运行需要很长时间并且经常超时。

谁能建议我如何加快速度? 基本上逻辑是:

如果"描述"包含"单词">

,则输入"单词">

我想也许将所有单词放在一个数组中,但我不知道如何确定数组中的哪些单词在"描述"中并返回此值。

所有"功能"都存储在我的desc_lookup表中,用逗号分隔,因此可以轻松地将它们添加到数组中。

$features = explode("'n",$_POST["features"]);
$features = str_replace("'r","",$features);
foreach($features as $feature)
{
    $sql = "UPDATE `".$config_databaseTablePrefix."products` 
           SET features = CONCAT(features, '".$feature.",') WHERE `description` LIKE
           '%".database_safe($feature)."%'";
    database_queryModify($sql,$result);
}

提前感谢!克里斯

如果我

是你,我会在将产品输入数据库时进行这种关键字搜索,并将它们存储为单独的字段(或者可能在另一个表中(。或者可能使用缓存系统,这样您就不必每次都为每个产品执行此操作。