常用sql记录
添加登录权限
grant all privileges on *.* to 'yun'@'%' IDENTIFIED BY '123456' with grant option;
数据库备份
1. 使用mysqldump命令备份整个数据库
$ mysqldump -u root -p database >database_backup.sql
其中,-u表示用户名,-p表示密码,database表示需要备份的数据库名称,>表示将备份数据输出到指定的文件中。
2. 使用mysqldump命令备份表
$mysqldump -u root -p database table >table_backup.sql
其中,table表示需要备份的表的名称。
3. 使用mysqlhotcopy备份数据库
$mysqlhotcopy -uroot -p database /path/to/backup/folder
其中,/path/to/backup/folder表示备份的路径,mysqlhotcopy将直接备份整个数据库到指定的目录中。
4. 使用MySQL服务管理器备份数据库
$mysqldump --default-character-set=utf8 -h DBhost -u DBuser -p DBpassword --opt dbname >/path/to/backup/folder/backupfile.sql
其中,--default-character-set=utf8表示将备份数据转为utf8字符集,DBhost表示数据库主机名称,DBuser表示数据库用户名,DBpassword表示数据库密码,dbname表示需要备份的数据库名称,>表示将备份数据输出到指定的文件中。
创建表
-- wpg_waterwork_hnxx.cost_info_electric definition
CREATE TABLE `cost_info_electric` (
`id` varchar(32) NOT NULL COMMENT '主键',
`cost_info_id` varchar(32) DEFAULT NULL COMMENT '成本录入id',
`electric_type` int(1) DEFAULT NULL COMMENT '1:峰电 2:谷电 3:平电',
`record_type` int(1) DEFAULT NULL COMMENT '3:录入成本消耗 4:录入成本金额',
`consume` decimal(16,2) DEFAULT NULL COMMENT '成本消耗',
`price` decimal(16,2) DEFAULT NULL COMMENT '成本单价',
`cost` decimal(16,2) DEFAULT NULL COMMENT '成本金额',
`water_plant_id` varchar(32) DEFAULT NULL COMMENT '水厂id',
`tenant_id` varchar(32) DEFAULT NULL COMMENT '租户id',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
`create_user` varchar(32) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`update_user` varchar(32) DEFAULT NULL COMMENT '修改者',
`del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志,0-正常,1-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='记录成本录入时 峰谷平电的记录';
创建sql时 常用create_time 和 update_time 设置默认创建时间和 修改时的时间
mybatis 中xml常用写法
1、list参数
<if test="deviceIds != null and deviceIds.size > 0">
and device_id in
<foreach collection="deviceIds" open="(" separator="," close=")" item="deviceId" index="index">
#{deviceId}
</foreach>
</if>
2、时间查询
<if test="startTime != null">
AND date_format(date_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> date_format(#{startTime},'%Y-%m-%d %H:%i:%s')
</if>
<if test="endTime != null">
AND date_format(date_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> date_format(#{endTime},'%Y-%m-%d %H:%i:%s')
</if>
3、json查询
1. 解决json类型字段的模糊查询:
存储的数据格式:{"type": "10", "mobile": "13545678900", "countryCode": "86"}
select * from a where mobile_json->'$.mobile' like '%135%'
1.1 解决接送类型字段的精确查询
数据存储格式:{"type": "10", "mobile": "13545678900", "countryCode": "86"}
select * from a where mobile_json-> '$.mobile' = 13545678900
2. 解决 JsonArray 类型字段的模糊查询:
存储的数据格式: [{"type": "10", "mobile": "13545678900", "countryCode": "86"}]
select * from a where mobile_json->'$[*].mobile' like '%135%'
2.1 解决 JsonArray 类型字段的精确查询:
存储的数据格式: [{"type": "10", "mobile": "13545678900", "countryCode": "86"}]
select * from a where JSON_CONTAINS(mobile_json,JSON_OBJECT('mobile', "13545678900"))
<if test="startTime!=null">
and date_format( schedule_date, '%Y-%m-%d' ) <![CDATA[ >= ]]> date_format( #{startTime}, '%Y-%m-%d' )
</if>
SELECT
*
FROM
ticket_record
WHERE
tenant_id = '1e65b2a94292a6cda781100f1fac6f11'
AND category_ids LIKE '%ticket_out_work_repair%'
#这种写法查不到,用in 只能查一个,不能查多个,或者使用=也可以
#AND json_extract( ext_val, "$.alarmId" ) IN ( '466c9cea87f929b4b179dd27d332e6a0' ,'666666666666666')
#使用or将多个连接起来
AND (ext_val-> '$.alarmId' = '466c9cea87f929b4b179dd27d332e6a0' or ext_val-> '$.alarmId' = "1")
AND del_flag = 0