#SQL1242错误
---------------------
- 子查询更新数据时遇到多条数据时,可以使用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
- //正确的方法一对多
- 时间查询 简单举例: 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`
- //FROM_UNIXTIME 将时间戳转换为字符串日期;
- 综合查询&&综合更新
综合查询案例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;
- 1.
- 判断语句:
- 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;
- UPDATE yd_draw_worldcup_user AS a
- 事务语句:
- #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;
- #mysql使用事务的关键字
- 自定义序列号字段:
- 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
- SET @rownum=0;
- 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 - 【查询】数据库有哪些表;
- 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;
- select table_schema as database_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错误的更多相关文章
- 航空概论(历年资料,引之百度文库,PS:未调格式,有点乱)
航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明 ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”
DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...
- 实时的.NET程序错误监控产品Exceptionless
Exceptionless可以对ASP.NET, Web API, WebForms, WPF, Console, 和 MVC 应用提供错误监控.上传.报表服务.使用时需要在Exceptionless ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- SQL Server 致程序员(容易忽略的错误)
标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...
- C# - 值类型、引用类型&走出误区,容易错误的说法
1. 值类型与引用类型小总结 1)对于引用类型的表达式(如一个变量),它的值是一个引用,而非对象. 2)引用就像URL,是允许你访问真实信息的一小片数据. 3)对于值类型的表达式,它的值是实际的数据. ...
- 记一个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 ...
随机推荐
- H5 表单标签
33-表单标签3 列表数据 注意点: 1.下拉列表不能输入内容, 但是可以直接在列表中选择内容 2.可以通过给option标签添加一个selected属性来指定列表的默认值 3.可以通过给option ...
- poj2449 第k短路
题目链接 学习博客:https://blog.csdn.net/Z_Mendez/article/details/47057461 k短路没有我想象的那么难,还是很容易理解的 求s点到t点的第k短路径 ...
- Excel之批量改变特定字体颜色(转载)
改变单元格内部分特定字符的颜色,如果批量操作,需要用宏处理, 如下例,将范围内 所有字母A 变成红色 操作步骤:右键点击工作表标签,查看代码,如下代码复制进去Private Sub CommandBu ...
- vue-lazyload简单使用
vue-lazyload简单使用 npm地址:https://www.npmjs.com/package/vue-lazyload github地址:https://github.com/hilong ...
- C#复习笔记(3)--C#2:解决C#1的问题(结束C#2的内容:最后一些特性)
结束C#2的内容:最后一些新性 这是本章要讲的内容: 分部类型:可以在多个源文件中为 一个类型编写代码. 特别适用于部分代码是自动生成, 而其他部分的代码为手写的类型. 静态类:对工具类进行整理, 以 ...
- [转帖]一段关于Unix与 Linux的暗黑史
一段关于Unix与 Linux的暗黑史 https://blog.csdn.net/a343315623/article/details/51436715 微软曾经开发过 MS-DOS Xenix O ...
- jQuery EasyUI 折叠面板accordion的使用实例
1.对折叠面板区域 div 设置 class=”easyui-accordion” 2.在区域添加多个 div, 每个 div 就是一个面板 (每个面板一定要设置 title 属性). 3.设置面板属 ...
- object-fit 属性的用法介绍
这个要在宽,高都是100%的情况下才能提现 object-fit 属性的用法介绍 fill(不保持纵横比缩放图片,使图片完全适应) contain(保持纵横比缩放图片,使图片的长边能完全显示出来) c ...
- Android——MaterialDesign之三NavigationView
NavigationView的使用 这里我们来讲讲在Android5.0之后推出的NavigationView的具体使用方式.和普通的侧拉菜单制作方式一样,首先所有的东西还是都放在一个DrawerLa ...
- WEX5中ajax跨域访问的几种方式
1.使用jsonp方式 使用jsonp访问的话,前端需要把回调函数名传递给后端,后端执行完后也需要把回调函数传回给前端,默认情况下ajax自动生成一个回调函数名,后端可以通过String callba ...