SQL从行中选择数据如果存在则创建行

时间:2013-12-27 11:20:40

标签: mysql sql lua

我遇到了很多关于SQL SELECT IF EXISTS的问题,但是我无法准确地拼凑出我需要的东西。

我要做的是从一个表中的行中选择特定数据(如果该行存在),否则使用默认值创建行,并在一次查询中对数据库执行所有操作。

我能够在数据库中创建该行(如果它尚不存在),如果它确实存在,则从行中选择数据,但是如果可能的话我想组合后两者。

所以,而不是这个: 1,使用SELECT检查行是否存在 2,如果行不存在INSERT 3,如果行确实存在SELECT再次获取数据

我想这样做: 1,使用select检查行是否存在,如果确实存在行,则在同一查询中获取所有数据 2,如果行不存在则插入行

我希望我能正确解释,并感谢大家的帮助,非常感谢!

2 个答案:

答案 0 :(得分:1)

不完全确定这里的问题是什么。当然你想要的(伪代码)是:

qryexecute("SELECT * FROM table WHERE ... FOR UPDATE")

if numrows(qry) > 0 then
  rowfetchdata(qry)
else
  execute("INSERT INTO table VALUES (...)")
  row ← ... // inserted data
end if

// use row

答案 1 :(得分:0)

IF Not EXISTS (SELECT * FROM ------)
BEGIN
    --Insert HERE
END
ELSE
BEGIN
   --  select HERE
END