我试图根据一列从表中选择一条记录,但如果该记录包含另一条记录的映射ID,则应该选择映射的记录。例如在下表中:
id name mapping
1 neil 2
2 Neil NULL
3 bob NULL
4 Bob NULL
如果我搜索" neil"我想返回记录2,因为它有一个映射记录;但如果我搜索" bob"我应该返回记录3,因为它没有映射。
像这样的命令(但它会返回错误):
SELECT IF (
SELECT mapping FROM tbl_names WHERE name LIKE "neil" is null,
SELECT id, name FROM tbl_names WHERE name LIKE "neil",
SELECT id, name FROM tbl_names WHERE id = (SELECT mapping FROM tbl_names WHERE name LIKE "neil"
)