热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

#SQL1242错误

---------------------子查询更新数据时遇到多条数据时,可以使用SUM&MIN等函数解决:如下:正确的方法一对多UPD

---------------------

  1. 子查询更新数据时遇到多条数据时,可以使用SUM&MIN等函数解决:如下:

    //正确的方法一对多
    UPDATE `yd_draw_prize_order` SET `adopt_update_time` = (SELECT MIN(`update_time`) FROM `yd_draw_prize_order_number` WHERE `d_p_order_id` = `yd_draw_prize_order`.`d_p_order_id`) WHERE `adopt_update_time` IS NULL//报1242错误方式一对多
    UPDATE `yd_draw_prize_order` SET `adopt_update_time` = (SELECT `update_time` FROM `yd_draw_prize_order_number` WHERE `d_p_order_id` = `yd_draw_prize_order`.`d_p_order_id`) WHERE `adopt_update_time` IS NULL

    View Code

     

  2. 时间查询     简单举例: SELECT COUNT('$column') FROM `%table` WHERE `$column` BETWEEN UNIX_TIMESTAMP('2018-05-03 00:00:01') AND UNIX_TIMESTAMP('2018-05-03 23:59:59')
    更多时间查询案例;
    案例分享:

    //FROM_UNIXTIME 将时间戳转换为字符串日期;
    //UNIX_TIMESTAMP 将其他时间转换为时间戳;
    SELECT`yd_draw_prize_order`.`d_p_order_id`,yd_draw_prize_order_log.`rand_num`,FROM_UNIXTIME(yd_draw_prize_order.adopt_time) AS adopt_time,FROM_UNIXTIME(yd_draw_prize_order_log.draw_time) AS '抽奖时间',yd_draw_prize_order_log.`d_p_order_activity_id`,yd_draw_prize_order_log.`d_p_order_activity_name`,yd_draw_prize_order_log.`draw_num`,yd_draw_prize_order_log.`winning`
    FROM`yd_draw_prize_order`INNER JOIN `yd_draw_prize_order_number`ON yd_draw_prize_order.d_p_order_id = yd_draw_prize_order_number.d_p_order_idINNER JOIN `yd_draw_prize_order_log`ON yd_draw_prize_order.d_p_order_id = yd_draw_prize_order_log.d_p_order_id
    WHERE `customer_phone` = '15512816085'AND `adopt` = 1AND yd_draw_prize_order_number.`reward_num` = 04028AND yd_draw_prize_order_log.draw_time > UNIX_TIMESTAMP(NOW())AND yd_draw_prize_order_log.`d_p_order_activity_id` = 2

    案例2

    //日期子查询;
    SELECT*
    FROM`yd_extension_data_1`
    WHERE `distrbutor_id` IN(SELECT`distrbutor_id`FROM`yd_distrbutor`WHERE `distrbutor_provinceid` = 19)AND `create_time` BETWEEN '2017-01-01 00:00:01'AND '2018-01-01 00:00:00'
    AND `distrbutor_id` NOT IN (1,23)
    ORDER BY `create_time`

      

     

  3. 综合查询&&综合更新
    综合查询案例1:

    1.
    SELECTb.id AS '用户id',user_name AS '用户名',`active_points` AS '积分',COUNT(bet_state) AS '猜中数',GROUP_CONCAT(bet_state) AS '统计情况',GROUP_CONCAT(match_id) AS '赛事ID',b.share AS '1为己分享',`use_points` AS '消耗积分'
    FROMyd_draw_worldcup_betting AS aINNER JOIN yd_draw_worldcup_user AS b
    WHERE a.&#96;worldcup_user_id&#96; &#61; b.&#96;id&#96;AND a.&#96;bet_state&#96; IN (20, 21, 22)AND b.&#96;use_points&#96; <> 0
    GROUP BY id;2.SELECTb.id AS &#39;用户id&#39;,user_name AS &#39;用户名&#39;,&#96;active_points&#96; AS &#39;积分&#39;,b.share &#43; COUNT(bet_state) AS &#39;自定义&#39;,COUNT(bet_state) AS &#39;猜中数&#39;,b.share AS &#39;1为己分享&#39;,&#96;use_points&#96; AS &#39;消耗积分&#39;FROMyd_draw_worldcup_betting AS aINNER JOIN yd_draw_worldcup_user AS b
    WHERE a.&#96;worldcup_user_id&#96; &#61; b.&#96;id&#96;AND a.&#96;bet_state&#96; IN (20, 21, 22)AND b.&#96;use_points&#96; &#61; 0
    GROUP BY id;

    View Code

     

    综合简单查询更新1&#xff1a;

    1.UPDATE&#96;yd_draw_worldcup_user&#96;
    SET&#96;active_points&#96; &#61; &#96;active_points&#96; &#43; 1
    WHERE &#96;id&#96; IN(SELECT&#96;worldcup_user_id&#96;FROM&#96;yd_draw_worldcup_betting&#96;WHERE &#96;match_id&#96; &#61; 2AND &#96;bet_state&#96; IN (20, 21, 22))

    View Code

     综合链表更新2&#xff1a;

    1.
    update yd_draw_worldcup_user as a,yd_draw_worldcup_betting as b set
    a.active_points
    &#61; 0,
    b.bet_state
    &#61; 10,
    b.draw_number
    &#61; &#39;&#39;where b.match_id in (1,2,3,4,5) and b.worldcup_user_id &#61; a.id;

    View Code

     

  4. 判断语句&#xff1a;

    UPDATE yd_draw_worldcup_user AS a
    SET a.active_points &#61;
    (CASE WHEN (a.active_points &#43; a.&#96;share&#96;

  5. 事务语句&#xff1a;

    #mysql使用事务的关键字
    #begin //打开一个事务
    #commit //提交到数据库
    #rollback //取消操作
    #savepoint //保存&#xff0c;部分取消&#xff0c;部分提交
    #alter table person type&#61;INNODB //修改数据引擎begin;
    update tags set tagid &#61; 133 where docid &#61; 1;
    SAVEPOINT tags1;
    update tags set tagid &#61; 530 where docid &#61;2;
    SAVEPOINT tags2;
    ROLLBACK TO SAVEPOINT tags2;
    SELECT * from tags where docid in(1,2);
    commit;

      

  6. 自定义序列号字段:

    SET &#64;rownum&#61;0;
    SELECT&#64;rownum:&#61;&#64;rownum&#43;1 AS &#39;序列&#39;,a. AS &#39;用户名称&#39;
    FROM(SELECT &#64;rownum:&#61;0) r, AS a
    WHERE 1
    ORDER BY . ASC

      

  7. mysql update You can&#39;t specify target table &#39;yd_qr_code&#39; for update in FROM clause . 

    原&#xff1a;update &#96;yd_qr_code&#96; set winning_description &#61;  (select a.&#96;winning_description&#96; from &#96;yd_qr_code&#96; as a where a.&#96;qr_id&#96; &#61; 1) where qr_id &#61; 2
    原理&#xff1a;mysql 不能在同表操作更新&#xff0c;我们要用一个 中间表 来让数据库认为不是同表操作&#xff1b;
    后&#xff1a;update &#96;yd_qr_code&#96; set winning_description &#61; (select b.&#96;winning_description&#96; from (select a.&#96;winning_description&#96; from &#96;yd_qr_code&#96; as a where a.&#96;qr_id&#96; &#61; 1)b) where qr_id &#61; 2

 --------------------------------

权限&#xff1a;

  • 为用户 xuguo 添加"xu_gms" 数据库操作权限&#xff1a;GRANT ALL PRIVILEGES ON xu_gms.* to &#39;xuguo&#39;&#64;&#39;%&#39;;  
  • 数据库文件导出&#xff1a; mysqldump -u username -p dbname > filename.sql
  • 查看字符集&#xff1a;show variables like &#39;%char%&#39;;
    修改数据字符集&#xff1a;

    set character_set_database&#61;utf8;
    set character_set_server&#61;utf8;

  • 修改全局变量max_allowed_packet&#xff1a;global max_allowed_packet &#61; 2*1024*1024*10 &#xff1b;    查看全局变量max_allowed_packet&#xff1a;show VARIABLES like &#39;%max_allowed_packet%&#39;;
  • --

 

 

 

---------------------


转载于:https://www.cnblogs.com/q1104460935/p/8900412.html


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 数据库(外键及其约束理解)(https:www.cnblogs.comchenxiaoheip6909318.html)My ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
author-avatar
4号的国哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有