利用mysql数据库批量修改zencart的特价商品

说起来这个问题,其实我很纠结的呢。我现在的前台有一部分商品被我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了解一点,一切都是慢慢的在学习中……

时间: 2024-08-01 20:41:40

利用mysql数据库批量修改zencart的特价商品的相关文章

mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?

问题描述 Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果? 现在在做一个项目,其中编写了数据库连接及操作的类. 1.ConnDB类. package com.wgh.tools; import java.io.InputStream; //导入java.io.InputStream类 import java.sql.*; //导入java.sql包中的所有类 import java.util.Properties; //导入java.util.Properties

mysql数据库可以修改表的日期格式吗?

问题描述 mysql数据库可以修改表的日期格式吗? 难道只能修改系统的日期格式吗?或者对表操作的时候使用date__format()函数吗?_ 解决方案 对于mysql数据库中日期 格式字段的存取Mysql 日期格式转换mySql日期截取和格式转换 解决方案二: 日期datetime字段等,它可以支持多种日期格式. 解决方案三: 得自己用的时候自己转,或者就是存储的时候存字符串

MySql数据库批量备份命令

rd d:\mysql_data-BAK /s /qmd d:\mysql_data-BAKxcopy d:\mysql_data d:\mysql_data-BAK /e

mysql数据库主从同步

环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168.108.140 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /root/test.sq

mysql-利用MySQL数据库如何解决大数据量存储问题?

问题描述 利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开关量历史数据表,这两张表字段设计的很简单(OrderNo,Value,DataTime).基本上每张表每天可以增加几千万条数据,我想问如何存储数据才能不影响检索速度呢?需不需要换oracle数据库呢?因为我是数据库方面的新手,希望可以说的详细一点,万分感谢!!! 解决方案 查询业务是怎么样

linux mysql 数据库开启外部访问设置指南_Mysql

Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.cnf 具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以. 一.配置文件的修改 1.#sudo vim /etc/mysql/my.conf 找到 bind-address = 127.0.0.1 注释掉这句话 二.Mysql数据库的修改 1) [root@etc etc]# mysql -u root -p Enter password: 2)grant all privileges on d

数据库-mysql查询语句批量修改的问题

问题描述 mysql查询语句批量修改的问题 在数据库中查询出地址为北京的数据,然后把这些数据的电话号码前面都加上010 解决方案 假设电话号码的字段名叫phone_num XXX是符合地址为北京的条件 update 表名 set phone_num=concat('010',phone_num) where XXX; 解决方案二: update table set xxx where yyy 解决方案三: update (select phone_num 表名 where phone_num n

【转】利用optimize、存储过程和系统表对mysql数据库表进行批量碎片清理释放表空间

本文收集于本人的笔记本,由于找不到原文出处.在此省略,如哪位知道可以联系我加上. 核心是利用mysql系统表和"optimize table 表名"命令,对mysql数据表进行空间的释放.由于delete和drop table都不会释放表空间(truncate 命令会释放表空间[将所有的数据都删除]),所以需要利用optimize 命令进行释放. 这个存储过程目的是给一个库的所有表来整理碎片的.一个表随着插入很频繁,或者一直更新不停的,就会积累好多碎片.如果及时整理一下,查询效率会高出

shell批量修改MySQL存储引擎类型2种方法

MySQL存储引擎类型有哪些 MyISAM管理非事务表.提供高速检索,以及全文搜索能力. Memory存储引擎提供"内存中"表,MERGE存储引擎允许集合将被树立统一的MyISAM表做为一个单表.非事务表.可把多个myisam表构建为一个虚拟表,使得对这些表的查询仿佛在一个表上进行,提高了查询速度和修复效率,并节省了磁盘空间. InnoDB,BDB存储引擎提供事务安全表. EXAMPLE存储引擎是一个"存根"引擎,它不做什么.可以用这个引擎创建表,但没有数据被存储其