1、sql查询后的结果作为更新的条件,
这样写是不行的:
UPDATE bus_customerarrears b
SET Endtime = now(),
AlarmBegintime = NOW(),
STATUS = 0
WHERE
b.ID = (
SELECT
ID
FROM
bus_customerarrears
WHERE
CustomerID = 1
ORDER BY
Begintime DESC
LIMIT 1
)
要使用inner join
UPDATE bus_customerarrears b
INNER JOIN (
SELECT
ID
FROM
bus_customerarrears
WHERE
CustomerID = 1
ORDER BY
Begintime DESC
LIMIT 1
) bc
SET Endtime = now(),
AlarmBegintime = NOW(),
STATUS = 0
WHERE
b.ID = bc.ID
2、sql查询结果作为插入语句的值写法:
INSERT INTO sys_user_role ( uid, rid )
VALUES
( 1, ( SELECT id FROM sys_role WHERE rolename = 'select' ) )
3、mybatis插入数据后返回主键id,参考
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT
INTO ke_pack_send(
id,
device_id,
content,
grade,
flag,
update_time,
mark,mark_name
) VALUES (
#{id},
#{deviceId},
#{content},
#{grade},
#{flag},
#{updateTime},
#{mark},
#{markName}
)
</insert>