重新措辞原来的帖子。如何使用以下查询或类似查询:
select * from table where name="Jack" AND ID NOT IN (1,2,3,4,5) ;
要确定以下两者之间的差异: Jack 已找到记录,但其id存在于(1,2,3,4,5)中,因此未返回任何内容而且,没有 Jack 找到了记录,所以什么也没回来有没有可能用if语句或类似的东西…或者有没有更好的方法?
Jack
0tdrvxhp1#
我的建议是:通过一个查询来获取状态(“匹配”,“找到了杰克,但id错误”,“找不到杰克”)和匹配(如果有):
select s.status, t.* from ( select case when sum(name = 'Jack' and id not in (1,2,3,4,5)) then 'MATCH' when sum(name = 'Jack') then 'WRONG ID' else 'NO JACK' end as status from t ) s left join t on t.name = 'Jack' and t.id not in (1,2,3,4,5);
演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=02733107f41bc51600a422f2911c6f6b
1条答案
按热度按时间0tdrvxhp1#
我的建议是:通过一个查询来获取状态(“匹配”,“找到了杰克,但id错误”,“找不到杰克”)和匹配(如果有):
演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=02733107f41bc51600a422f2911c6f6b