0

我正在尝试仅复制产品描述段落中的第一句,用于 mysql 数据库中的元描述标签。例如。在这个产品描述中,我只需要将第一句话从 products_description 字段复制到 products_meta_description 字段。

“Kendall Howard 8U 紧凑型系列 SOHO 服务器机柜机架是空间有限的 IT 设置的理想选择。时尚、耐用的设计专为小型企业、家庭办公室或 IT 专业人士设计,他们希望在不牺牲服务器安全的情况下实现紧凑设计机架设备。”

应复制到 products_meta_description 为:“Kendall Howard 8U 紧凑系列 SOHO 服务器机柜机架非常适合空间有限的 IT 设置。”

UPDATE products SET products_meta_description = products_description(1st sentence only)

不知道该怎么做。我假设它会找到段落中的第一个句点 (.) 并在此之前获取所有内容。顺便说一句,我在 phpmyadmin sql 查询工具中执行此操作。有数以千计的产品,所以我认为这将是为每个产品输入罐装元描述标签而不是手动执行的最简单方法。

4

2 回答 2

3

MySQL 的SUBSTRING_INDEX功能非常适合:

UPDATE products
SET products_meta_description = SUBSTRING_INDEX(products_description, '.', 1)

这将为您提供第一个时期之前的一切。如果你也想要这个句点,最简单的方法就是CONCAT把它变成结果:

UPDATE products
SET products_meta_description = CONCAT(SUBSTRING_INDEX(products_description, '.', 1), '.')
于 2013-06-20T17:07:14.540 回答
2

MySQL 的功能SUBSTRING_INDEX应该可以帮助您:

UPDATE products SET products_meta_description = SUBSTRING_INDEX(products_description, '.', 1)

此查询应使用来自“products_description”字段的文本更新“products_meta_description”字段,直到第一次出现“。”

不包括句号,因此如果需要,必须通过连接字符串来添加它(第一个参数是空分隔符)。

UPDATE products SET products_meta_description = CONCAT_WS('', SUBSTRING_INDEX(products_description, '.', 1), '.')

来源

于 2013-06-20T17:19:03.090 回答