我有下表post
pk id title title_mod author author_mod
--------------------------------------------------------------------
001 1 Foo Bar 1 Homer 1
002 1 Foo Bar 0 Bart 1
003 1 Foo-Bar 1 Bart 0
004 2 Hello World 1 Marge 1
005 2 Hello Springfield 1 Marge 0
006 2 Hello World 1 Homer 1
007 3 Marge's recipes 1 Homer 1
008 3 Marge's recipes 0 Marge 1
009 3 Marge's recipes 0 Marge 0
现在,我需要根据前一行填写*_mod
个字段,例如如果更改title
,则title_mod
变为'1',否则变为'0'。如果更改了id
,则每个*_mod
字段都会变为“1”。
有没有办法在MySql / MariaDb中使用简单的'Update'语句执行此操作? (或者我需要一些脚本?)TIA。
答案 0 :(得分:1)
我认为你可以做这样的事情。
UPDATE post
SET id = new_id,
title = new_title,
title_mod = if( id != new_id, /* then */ 1, /* else */ if( title != new_title, /* then */ 1, /* else */ 0 ) )
etc
另一种选择是使用BEFORE UPDATE触发器并使用相同的逻辑。