Mysql 如何在值位于另一列sql中时替换该值

Mysql 如何在值位于另一列sql中时替换该值,mysql,sql-server,case-when,Mysql,Sql Server,Case When,我目前正在学习如何使用sql,我想知道当一个数字出现在同一表格的另一列中时,如何替换该数字。例如,给我一个表,第一列是[1 2 3 2 4],第二列是[2 1 3 4],我想替换第二列中的值,当该数字出现在第1列时表示为“已找到”,当该数字不在第1列时表示为“未找到”。这是我到目前为止试过的 SELECT ID , CASE WHEN P_ID = ID THEN 'FOUND' WHEN P_ID <> ID THEN 'NOT FOUND'

我目前正在学习如何使用sql,我想知道当一个数字出现在同一表格的另一列中时,如何替换该数字。例如,给我一个表,第一列是[1 2 3 2 4],第二列是[2 1 3 4],我想替换第二列中的值,当该数字出现在第1列时表示为“已找到”,当该数字不在第1列时表示为“未找到”。这是我到目前为止试过的

SELECT ID
    , CASE
        WHEN P_ID = ID THEN 'FOUND'
        WHEN P_ID <> ID THEN 'NOT FOUND'
    END AS P_ID
FROM TABLE
选择ID
案例
当P_ID=ID时,则“找到”
当P_ID为“未找到”时
以P_ID结束
从桌子上
p_ID将是第二列,ID将是第一列。 这将P_ID中的每个条目切换为“未找到”

编辑
在提供的示例中,它将返回在第3行和第5行找到的,但在每一行都找不到

我不明白为什么它不返回第三行和最后一行的
FOUND
(虽然您在问题中有一个输入错误,但在
未找到的
末尾缺少一个
)我们是否假设您有5行数据,由对{1,2}、{2,1}、{3,3}、{2,4}、{4,4}组成?@Lamak在该示例中是的,但在中,当它们不匹配时,我只是找不到您的查询工作正常。@isaace那么,当第二列中的数字位于第一列时,为什么找不到其中的每个条目
SELECT ID
, CASE
    WHEN P_ID IN
      (SELECT ID FROM myTable )
       THEN 'FOUND' 
    WHEN P_ID NOT IN 
      (SELECT ID FROM myTable ) 
       THEN 'NOT FOUND'
  END AS P_ID
FROM myTable