当按该字段选择时,MySql更新字段

当按该字段选择时,MySql更新字段,mysql,Mysql,我想更新一个字段,但我只能通过从该字段中选择来标识要更新的行,例如: UPDATE alumni_feedback_questions SET question_text = 'Basic Skills / Foundation Learning' WHERE question_text = 'Basic Skills and Foundation Learning' 我确信这在SQL server中可以工作,但在MySql中似乎不起作用 我很确定问题是因为我正在对正在变化的值进行选择,我可

我想更新一个字段,但我只能通过从该字段中选择来标识要更新的行,例如:

UPDATE alumni_feedback_questions
SET question_text = 'Basic Skills / Foundation Learning'
WHERE question_text =  'Basic Skills and Foundation Learning'
我确信这在SQL server中可以工作,但在MySql中似乎不起作用

我很确定问题是因为我正在对正在变化的值进行选择,我可以理解为什么这会有问题。我原以为设计者会考虑到这种情况,让它先进行选择,从而在更改字段之前确定要更改的字段

我还尝试:

 UPDATE alumni_feedback_questions
SET question_text = 'Basic Skills / Foundation Learning'
WHERE ID =  (
                SELECT ID
                FROM alumni_feedback_questions
                WHERE question_text =  'Basic Skills and Foundation Learning'
            )
但这也不起作用

可以这样做吗?我不希望必须选择eh ID并手动插入它们。必须有更好的方法吗

我看到了一些关于将同一个表连接到select

更新-我从这条
UPDATE
语句中得到的错误消息是:

You can't specify target table 'alumni_feedback_questions' for update in FROM clause    0.016 sec

你的第一个建议是正确的。这是根据列的当前值更新列的有效SQL:

UPDATE alumni_feedback_questions
SET question_text = 'Basic Skills / Foundation Learning'
WHERE question_text =  'Basic Skills and Foundation Learning'
要检查它是否确实在选择某些内容,从而能够进行更新,请执行选择:

SELECT question_text
WHERE question_text =  'Basic Skills and Foundation Learning'

如果结果为零,则文本不存在。

MySQL中也存在文本。我是否误解了错误消息?我已经更新了问题,将第二个示例中的错误包括在内?因为第一个不应该出错。您是否运行了“选择”以检查结果?谢谢您,这是正确的-安全模式已打开,这就是阻止更新的原因。如果你的答案中包含安全模式,我将投票