我正在尝试构造一个将返回指定NAME记录的ID的查询,或者如果它不存在,则插入名称并返回ID。 (ID是自动增量字段,NAME不会有重复项,但是varchar是1024,因此它不能具有唯一属性)
我的SQL查询应该是这样的:
IF EXISTS(SELECT 1 FROM NAMES WHERE NAME='DAVE')
THEN
SELECT FROM NAMES WHERE NAME='DAVE'
ELSE
INSERT INTO NAMES(`NAME`) VALUES ('DAVE')
ENDIF;
(显然这不是有效的SQL ......但我不知道从哪里开始)
示例NAMES表:
+----+----------+
| ID | NAME |
+----+----------+
| 1 | ANDY |
| 2 | BOB |
| 3 | CARL |
+----+----------+
我应该将其拆分为多个查询吗?
答案 0 :(得分:0)
拆分你想要达到的任务:
首先检查是否存在具有特定名称的行
如果是,请选择整行并检索id,如果没有将数据插入db。
您可以在插入操作后使用SELECT LAST_INSERT_ID()来获取新插入行的ID。