热门标签 | 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


推荐阅读
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
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社区 版权所有