php - SQL 仅在一张表的一列中搜索和替换

标签 php mysql sql magento

我一直在构建一个 Magento 站点,但 SKU 列表因自动化而变得有点不稳定。我目前正在通过 phpMyAdmin 删除 SKU 末尾的“YRS”和“MO”,而不是在管理员中打开每个产品并在那里保存它。

我想找到一种自动化的方法。我只需要从一个表中搜索一列并替换/删除“YRS”和“MO”有效地转变为“10-2354-03/06 MO ”到“10-2354-03/06

我在想类似“搜索 > catalog_product_entity * sku |for| YRS & MO | replace ||” (我不知道 SQL 查询,所以请原谅我这样的黑客编码)

捕获前面的空间不是完全必要的,但在以后需要添加某些内容时会有所帮助。还有其他变量,所以有“用 YYY 替换 XXX”的东西会很棒 :)

我可以运行任何简单的查询来实现这一点吗?

Table is "catalog_product_entity" and column is "sku"

最佳答案

这个更新语句应该这样做:

update catalog_product_entity
   set sku = trim(trailing ' YRS' from trim(trailing ' MO' from sku))

如果你想在 select 语句中测试它,运行:

select trim(trailing ' YRS' from trim(trailing ' MO' from sku))
from   catalog_product_entity

参见 sql fiddle 测试:http://sqlfiddle.com/#!2/699ce/2/0

(从字符串末尾删除“MO”或“YRS”)

关于php - SQL 仅在一张表的一列中搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22701152/

相关文章:

php - 我如何根据另一个查询从 mysql 查询中排除一些记录

mysql - 将一个数据库中的值转移到另一个数据库中

C# - 密码数据库

php - get_post_gallery 全尺寸图像

php - 在 PHP 中正确实现 DAG?

javascript - 具有大量图像的网站的客户端服务器通信技巧

php - 如何解决active record $this->db->insert()实现一条 ‘INSERT IGNORE INTO’语句?

php - SQL 查询列表($order_total, $order_id) = mysqli_fetch_array($r);成功但有问题

php - 获取查询结果时格式化日期

mysql - SQL:查找包含特定日期的数据