SQL替换其他列

时间:2015-04-14 16:31:06

标签: mysql joomla

我有一个Joomla数据库,我需要用新用户ID替换“created_by”列中的条目,但替换是基于“created_by_alias”列中的条目。

╔════════════╦══════════════╗
║Created_By║Credated_By_alias║
╠════════════╬══════════════╣
║62║鲍勃多尔║
║62║比尔克林顿║
║62║鲍勃多尔║
║62║希拉里克林顿║
╚════════════╩══════════════╝
所以,当“created_by_alias”是Bob Dole时,我需要用1500替换created_by; 1550年,“created_by_alias”是比尔克林顿; 1600年“created_by_alias”是希拉里克林顿。

我提出了以下不起作用的查询:

更新候选人 SET created_by = 1500 WHERE created_by_alias (SELECT * FROM候选人  WHERE created_by_alias LIKE'Bob Dole')

我收到错误:#1241 - 操作数应包含1列

我错过了什么?我绝不是编码人员或查询专家,而且我目前的资源是忙于UW考试。

1 个答案:

答案 0 :(得分:0)

我认为你的意思是:

UPDATE candidates SET created_by = 1500 WHERE created_by_alias ='Bob Dole'

您获得的错误是因为您的subselect实际上返回了两个字段(62, 'Bob Dole'),还有两行。该错误试图告诉您,您只能针对一个字段测试一个值(除非您使用IN子句)