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

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

给定一个类似于

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

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

flseospp

flseospp1#

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

  1. SELECT MAX(id) AS id
  2. FROM foo
  3. WHERE name = ?;

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

d8tt03nd

d8tt03nd2#

或者使用UNION

  1. (select id
  2. from foo
  3. where name='user1234'
  4. union
  5. select null)
  6. order by id desc
  7. limit 1;

DBFIDDLE

相关问题