SQL搜索&在一张桌子上只替换一列

时间:2014-03-27 23:12:11

标签: php mysql sql magento

我一直在建立一个Magento网站,并且SKU列表在自动化方面有点不稳定。我目前正在浏览phpMyAdmin并删除" YRS "和" MO "在SKU结束时,而不是打开管理员中的每个产品并通过那里保存。

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

我正在思考类似"搜索> catalog_product_entity * sku | for | YRS & MO |替换||" (我不知道SQL查询,请原谅我这样的黑客编码)

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

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

  

表是" catalog_product_entity"和列是" sku"

2 个答案:

答案 0 :(得分:2)

此更新声明应该这样做:

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 test:http://sqlfiddle.com/#!2/699ce/2/0

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

答案 1 :(得分:1)

史蒂芬,

如果这是MSSQL Server,您应该可以使用以下内容:

更新YOUR_TABLE_NAME

设置catalog_product_entity = replace(catalog_product_entity,'MO','')

来自YOUR_TABLE_NAME

在运行更新语句之前,请尝试仅运行select以将原始值与新值进行比较。像这样:

选择     catalog_product_entity ,替换(catalog_product_entity,'MO','')  来自YOUR_TABLE_NAME