0
美好的一天,我有一个关于MySQL查询的问题。我想创建一个每日时间记录输出,但我的问题在于查询。我想要的是,当记录具有相同的ID和日期时,它必须更新,否则它会插入一条新记录。这些都是一些表格属性的截图VB.Net每日时间记录MySQL
美好的一天,我有一个关于MySQL查询的问题。我想创建一个每日时间记录输出,但我的问题在于查询。我想要的是,当记录具有相同的ID和日期时,它必须更新,否则它会插入一条新记录。这些都是一些表格属性的截图VB.Net每日时间记录MySQL
CREATE PROCEDURE dbo.EditGrade
@Id int
,@TimeIn datetime
,@TimeOut datetime
,@Existing bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CurrentTimeIn as datetime
DECLARE @CurrentId as int
SELECT @CurrentId = Id
FROM tblAttendance
WHERE TimeIn = @TimeIn
IF (@CurrentId <> @Id)
BEGIN
IF (SELECT COUNT(ISNULL(Id,0))
FROM tblAttendance
WHERE TimeIn = @TimeIn
SET @Existing = 0
ELSE
SET @Existing = 1
END
ELSE
BEGIN
SET @Existing = 0
END
IF @Name = ''
SET @Name = null
IF (@Existing = 0)
UPDATE tblAttendance
SET TimeIn = @TimeIn
--other column values here
WHERE Id = @Id
ELSE
--INSERT FROM tblAttendance query here
END
GO
这是从MS SQL存储过程,你可以把它转换成MySQL版本。
注意,日期时间类型也会检查秒数,所以不要尽可能多地包含秒,否则它将呈现为不相同(例如time in = 10:00:01,超时时间为10:00 :02将被渲染为不相同)
有人可以把它翻译成MySQL吗?我不太熟悉ms sql – arreojn
我以前有同样的问题,我的解决方案是运行选择查询,如果它返回一行,更新它,否则,它会插入一个新的。你有没有尝试过这种方法? –
[插入到MySQL表或更新,如果存在](https://stackoverflow.com/questions/4205181/insert-into-a-mysql-table-or-update-if-exists) –
我试过这种方法,但我想用sql学习它。感谢您的建议btw – arreojn