MySQL查询,然后更新

问题描述

我正在尝试在MysqL查询表。我想获取全部原始数据,然后更新它的TF列。

它看起来像这样:

UPDATE database1.DOC_INFO SET TF='1'

WHERE  (
          
          SELECT * FROM DOC_INFO WHERE SPECIALTY='Internal Medicine' AND
          LOCATION='NYC' AND TF like 0 LIMIT 1
);

我得到错误代码1241。操作数应包含1列。我如何更改它才能起作用?

解决方法

我认为解决方案非常简单。当您尝试选择和更新同一张表时,一个简单的更新查询就可以正常工作。它应该看起来像这样。

UPDATE 
database1.DOC_INFO 
SET 
TF='1' 
WHERE 
SPECIALTY='Internal Medicine' 
AND LOCATION ='NYC'
AND TF = 0;