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

  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
  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_id
    INNER 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` = 1
    AND yd_draw_prize_order_number.`reward_num` = 04028
    AND 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.
    SELECT
    b.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 '消耗积分'
    FROM
    yd_draw_worldcup_betting AS a
    INNER JOIN yd_draw_worldcup_user AS b
    WHERE a.`worldcup_user_id` = b.`id`
    AND a.`bet_state` IN (20, 21, 22) AND b.`use_points` <> 0
    GROUP BY id; 2. SELECT
    b.id AS '用户id',
    user_name AS '用户名',
    `active_points` AS '积分',
    b.share + COUNT(bet_state) AS '自定义',
    COUNT(bet_state) AS '猜中数',
    b.share AS '1为己分享',
    `use_points` AS '消耗积分' FROM
    yd_draw_worldcup_betting AS a
    INNER JOIN yd_draw_worldcup_user AS b
    WHERE a.`worldcup_user_id` = b.`id`
    AND a.`bet_state` IN (20, 21, 22)
    AND b.`use_points` = 0
    GROUP BY id;

    综合简单查询更新1:

    1.
    
    UPDATE
    `yd_draw_worldcup_user`
    SET
    `active_points` = `active_points` + 1
    WHERE `id` IN
    (SELECT
    `worldcup_user_id`
    FROM
    `yd_draw_worldcup_betting`
    WHERE `match_id` = 2
    AND `bet_state` IN (20, 21, 22))

    综合链表更新2:

    1.
    update yd_draw_worldcup_user as a,yd_draw_worldcup_betting as b set
    a.active_points = 0,
    b.bet_state = 10,
    b.draw_number = ''
    where b.match_id in (1,2,3,4,5)
    and b.worldcup_user_id = a.id;
  4. 判断语句:
    UPDATE yd_draw_worldcup_user AS a
    SET a.active_points =
    (CASE WHEN (a.active_points + a.`share` < a.use_points) THEN 0 ELSE (a.active_points + a.`share` - a.use_points) END)
    WHERE 1;
  5. 事务语句:
    #mysql使用事务的关键字
    #begin //打开一个事务
    #commit //提交到数据库
    #rollback //取消操作
    #savepoint //保存,部分取消,部分提交
    #alter table person type=INNODB //修改数据引擎 begin;
    update tags set tagid = 133 where docid = 1;
    SAVEPOINT tags1;
    update tags set tagid = 530 where docid =2;
    SAVEPOINT tags2;
    ROLLBACK TO SAVEPOINT tags2;
    SELECT * from tags where docid in(1,2);
    commit;

      

  6. 自定义序列号字段:
    SET @rownum=0;
    SELECT
    @rownum:=@rownum+1 AS '序列',
    a.<You_TableName_Field> AS '用户名称'
    FROM
    (SELECT @rownum:=0) r,<You_TableName> AS a
    WHERE 1
    ORDER BY <You_TableName>.<You_TableName_Field> ASC

      

  7. mysql update You can't specify target table 'yd_qr_code' for update in FROM clause . 

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

  8. 【查询】数据库有哪些表;
    select table_schema as database_name,
    table_name
    from information_schema.tables
    where table_type = 'BASE TABLE'
    and table_name like '%__value%'
    order by table_schema,
    table_name;

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

权限:

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

    set character_set_database=utf8;
    set character_set_server=utf8;

  • 修改全局变量max_allowed_packet:global max_allowed_packet = 2*1024*1024*10 ;    查看全局变量max_allowed_packet:show VARIABLES like '%max_allowed_packet%';
  • --

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

#SQL1242错误的更多相关文章

  1. 航空概论(历年资料,引之百度文库,PS:未调格式,有点乱)

    航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明 ...

  2. 日期格式代码出现两次的错误 ORA-01810

    错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...

  3. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  4. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  5. 实时的.NET程序错误监控产品Exceptionless

    Exceptionless可以对ASP.NET, Web API, WebForms, WPF, Console, 和 MVC 应用提供错误监控.上传.报表服务.使用时需要在Exceptionless ...

  6. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  7. SQL Server 致程序员(容易忽略的错误)

    标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...

  8. C# - 值类型、引用类型&走出误区,容易错误的说法

    1. 值类型与引用类型小总结 1)对于引用类型的表达式(如一个变量),它的值是一个引用,而非对象. 2)引用就像URL,是允许你访问真实信息的一小片数据. 3)对于值类型的表达式,它的值是实际的数据. ...

  9. 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file

    我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for requi ...

随机推荐

  1. 448C - Painting Fence(分治)

    题意:给出宽为1高为Ai的木板n条,排成一排,每次上色只能是连续的横或竖并且宽度为1,问最少刷多少次可以使这些木板都上上色 分析:刷的第一步要么是所有的都竖着涂完,要么是先横着把最矮的涂完,如果是第一 ...

  2. vue echarts 动态数据

    安装echarts依赖 npm install echarts -S 或者使用国内的淘宝镜像: 安装 npm install -g cnpm --registry=https://registry.n ...

  3. linux 下mysql服务的管理

    一.mysql服务的管理 1.1 mysql启动与关闭 linux下启动mysql: /etc/init.d/mysqld start 关闭进程: ps -ef | grep mysql 找到进程号 ...

  4. 学习memcache

    本文参考了菜鸟教程中的内容. 安装 安装memcache的时候,请切换为root用户 root@centos # wget http://www.memcached.org/files/memcach ...

  5. Git命令以及常见注意事项

    命令: git init -> 初始化一个git仓库 git clone -> 克隆一个本地库 git pull -> 拉取服务器最新代码 git fetch –p -> 强行 ...

  6. 通过event记录sql

    providers EventServiceProvider.php 添加 protected $listen = [ 'Illuminate\Database\Events\QueryExecute ...

  7. Oracle 不小心删除undo数据文件以及磁盘空间不足导致不能登录的解决办法

    在一次测试中,由于导入的数据量过大导致事务一直提交失败因为磁盘空间不够用了,一检查发现是undo表空间不够用,于是重新创建了一个表空间,准备把之前的undo表空间删除,删除时却发现一直删不掉,因为它一 ...

  8. Oracle 条件判断函数decode和case when then案例

    --decode条件判断函数 ,,,,,) from dual --需求:不通过连表查询,显示业主类型名称列的值 ,,,'商业','其他') from t_owners --case when the ...

  9. windows浏览器访问虚拟机开的rabbitmq服务,无法访问

    根据这个博主的建议 https://blog.csdn.net/csdnliuxin123524/article/details/78207427 换了一个浏览器上火狐浏览器输入“localhost: ...

  10. solrcloud编辑zookeeper上的配置文件的方法

    solrcloud的配置文件是上传在zookeeper文件系统上的.这样就面临一个问题,每次需要修改配置文件,就没有只有之前本地单机solr那么简单,需要上传. 搭建solrcloud时候提交配置文件 ...