mysql的问题

    空字段 排序的顺序是通过order by 从左到右依次排序的。当前一个排序相同的时候,然后在按照后一个字段进行排序。

    当字段A有空值的时候,想把空字段放到后面的话。用order by A is null 就可以了,这样会把空字段放在后面。

例如:select * from act_form_info a order by a.n_arrangeOrder is null,a.n_arrangeOrder,a.d_createDate


创建临时内存表:

DROP TABLE IF EXISTS `DelMemCache`;
CREATE TABLE `DelMemCache` (
`id` INTEGER  COMMENT 'id',
`cCheckTYpe` VARCHAR (256) NOT NULL COMMENT '类型'
) ENGINE = MEMORY DEFAULT CHARSET = utf8  MAX_ROWS = 100000000 COMMENT='删除数据中间表';


删除语句的时候,数据量很大的时候,如果想进行高效率的删除的话,使用内存表,两表关联删除。

INSERT INTO DelMemCache (id, cCheckType) VALUES (148941, 1);

DELETE act_check_record
FROM
act_check_record,
DelMemCache b
WHERE
n_applyId = b.id
AND c_checkType = b.cCheckTYpe;

DELETE
FROM
DelMemCache;


两表关联更新:

UPDATE act_apply_record,
 act_form_info
SET act_apply_record.s_formName = act_form_info.s_formName
WHERE
act_apply_record.n_formId = act_form_info.n_id


更新时间,减去几个月:

UPDATE
act_check_record a 
 SET a.d_checkEndDate=DATE_SUB(a.d_checkEndDate, INTERVAL 8 MONTH)
where a.s_checkResult!="0"
and a.n_checkUserId="352520ee824a42e5933f580685502223"


查询表的列明和类型:

select column_name,data_type from information_schema.columns where table_name='bmxz_201612028420_detail1' ;


数据去重查询(针对字段):

SELECT
*,t.n_applyId as applyId
FROM
act_check_record t
LEFT JOIN act_apply_record m ON t.n_applyId = m.n_id
LEFT JOIN act_form_info n ON n.n_id = m.n_formId
AND n.n_enterId = m.n_enterId
WHERE
1 = 1
AND t.n_id IN (
SELECT
Max(a.n_id)
FROM
act_check_record a
LEFT JOIN act_apply_record c ON a.n_applyId = c.n_id
LEFT JOIN act_form_info b ON b.n_id = c.n_formId
AND b.n_enterId = c.n_enterId
WHERE
1 = 1
AND b.n_enterId IN (
'ff808081581b3e2801581b47dd4e0000'
)
AND (
n_checkUserId = 'f5b8d13e4dec4ec1a6839c34e7655777'
OR n_checkRUserId = 'f5b8d13e4dec4ec1a6839c34e7655777'
)
AND s_checkResult IS NOT NULL
group by a.n_applyId
)
ORDER BY
t.d_checkStartDate DESC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值