2013-12-16 169 views
1

我想在我的数据库中设置一些记录。有些字段last_login小于create_at的记录。所以,我想设置字段last_login_at这记录与NULL。更新字段,其中一个日期字段小于其他日期字段

但是,下面的查询不起作用。

update database.users 
set last_login_at = NULL 
where last_login_at < created_at; 

我做一些测试,下面的查询工作:

SELECT * FROM database.users 
WHERE last_login_at < created_at; 

而这个查询工作过:

UPDATE database.users 
SET last_login_at = NULL 
WHERE id = 10; 

为什么第一个查询不起作用?

+1

你能告诉你的DB模式?什么是错误? – Raptor

+1

第一个查询'... last_login_at Maksim

+0

哦.-。 09:28:50 \t错误代码:1175.您正在使用安全更新模式,并且尝试更新没有使用KEY列的WHERE表。要禁用安全模式,请在首选项 - > SQL查询中切换选项并重新连接。 \t 0.000秒 –

回答

1

created_at不等于create_at。错误是由于错字造成的。

改成这样:

update database.users 
set last_login_at = NULL 
where last_login_at < created_at; 
+0

对不起,当我在这里输入时出现错误。 –

相关问题