mariadb 如果找到主键,则返回主键的SQL查询,否则返回NULL

wz1wpwve  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(173)

给定一个类似于

create table foo(id integer primary key, name varchar(128) unique not null);

我正在寻找一个查询,它搜索一个给定的名字,如果找到,返回id,否则返回NULL

flseospp

flseospp1#

MAX()(或MIN())使用聚合:

SELECT MAX(id) AS id
FROM foo
WHERE name = ?;

这样的聚合查询始终只返回1行1列,如果没有name满足WHERE子句中的条件,则返回NULL
?替换为所需的名称。
请参阅demo

d8tt03nd

d8tt03nd2#

或者使用UNION

(select id 
 from foo
 where name='user1234'
 union 
 select null) 
order by id desc 
limit 1;

DBFIDDLE

相关问题