说起来这个问题,其实我很纠结的呢。我现在的前台有一部分商品被我update了,全部变为0。
SQL语句为UPDATE specials set specials_new_products_price=0,一致前台显示的特价商品价格为0。如下图:
如果只是一件商品的话,我们可以在后台修改一下就行了。如下图:
可现在的问题是,我有5000件要修改呢,如果真的是一件一件的修改的话 那要累死人了呢。为了达到自己要的结果,开始在数据库中,进行查找了。在百度、google中查找了zencart的相关资料,但是都不能达到自己的要求,也尝试着咨询了一下群里面的网友,有的提供说可以通过mysql的存储过程实现,这一目标。
但是,兄弟们,你懂得啊,咱根本就不懂数据库呢。如果只是简单的查询和更新还可以,但是那么复杂的一个存储过程,咱真的是不会写呢。
那就分析products、specials,这两张表。我现在就是想把products表中的products_price字段的值,完全复制到specials表中specials_new_products_price字段中去,而表products和表specials,有一个共同的字段products_id。
如果我们按照一般的思维的话update语句应该是这样写的:
Update specials set specials_new_products_price=(select products_price from products )
在phpmyadmin执行系统会出现如下的错误提示:
这也是直接导致朋友提示我使用mysql存储过程的直接原因。那我们现在换一下角度,使用如下的SQL就可以把这个问题解决了:
UPDATE products p, specials s
SET s.specials_new_products_price = p.products_price
WHERE p.products_id = s.products_id
看看,前台的显示是否就是我们想要的结果:
PS:通过这个问题,也给了我们另外一个提示,那就是遇到问题了,多问问别人是对的。但是,也不能盲目的相信别人,自己要有自己的想法,你可以让你的思维任意的驰骋,只要把自己的想要的结果达到,就可以了。
我对mysql也是不懂的,zencart了解一点,一切都是慢慢的在学习中……
未经允许不得转载:烂泥行天下 » 烂泥:利用mysql数据库批量修改zencart的特价商品