我想要更新数据库中的一行,但如果值已存在,我不希望它更新。更新到MySQL表中,除非已经存在相同的值
例如:
UPDATE religion SET
name='3'
WHERE id=4
AND id NOT IN(SELECT id FROM religion);
任何指导,将不胜感激。
编辑: 我试图做数据验证。我想这样做,以便表格不会更新,如果输入的值已经存在于表格中。
我想要更新数据库中的一行,但如果值已存在,我不希望它更新。更新到MySQL表中,除非已经存在相同的值
例如:
UPDATE religion SET
name='3'
WHERE id=4
AND id NOT IN(SELECT id FROM religion);
任何指导,将不胜感激。
编辑: 我试图做数据验证。我想这样做,以便表格不会更新,如果输入的值已经存在于表格中。
我想你是在插入语句之后而不是更新语句。因为如果行不存在,则无法更新行。所以,我认为你可以做这样的事情:
INSERT INTO religion
(
id,
name
)
SELECT
tbl.Id,
tbl.`name`
FROM
(
SELECT 4 as Id, '3' as name
) as tbl
WHERE NOT EXISTS(SELECT NULL FROM religion WHERE religion.id=tbl.Id);
UPDATE宗教SET NAME = '3' WHERE ID = 4,名称= “”;
这应该工作:UPDATE religion SET name='3' WHERE id=4 AND name!='3';
下面是一个简单的解释:如果ID等于4名不等于3,更新。这工作。
这是非常不清楚你试试才达到 – Jens
'UPDATE宗教SET 名= '3' WHERE ID = 4 和名称= '3'!; '你想要这个吗? –
你需要澄清你的目标。您的示例查询尝试仅更新表中不存在的行。这是没有道理的。你是否试图向表中添加新行?在这种情况下,使用'insert'。 – 2017-05-30 12:50:27