我有一个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考试。
答案 0 :(得分:0)
我认为你的意思是:
UPDATE candidates SET created_by = 1500 WHERE created_by_alias ='Bob Dole'
您获得的错误是因为您的subselect实际上返回了两个字段(62, 'Bob Dole')
,还有两行。该错误试图告诉您,您只能针对一个字段测试一个值(除非您使用IN
子句)