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