空字段 排序的顺序是通过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