SELECT IF EXISTS ELSE INSER,Mysql

时间:2018-01-09 11:57:45

标签: mysql heidisql

我的sql语句有问题,并且在这里已经提出的问题中找不到解决方案。

我的陈述是:

IF EXISTS (SELECT LastLogin FROM user WHERE Email = @mail) 
SELECT LastLogin FROM user WHERE Email = @mail 
ELSE INSERT INTO 
`user`(LastLogin) VALUES ('00.00.0000') WHERE  Email = @mail 
END IF

尝试:

CREATE Procedure lastlogin()
  begin
   IF EXISTS (SELECT LastLogin FROM fenutzer WHERE Email = @mail)  
      SELECT LastLogin FROM user WHERE Email = @mail
  ELSE
      INSERT INTO `user`(LastLogin) VALUES ('00.00.0000') WHERE  Email = @mail
 END IF;



call lastlogin()

LastLogin的数据类型为“DateTime”。

我在sql-command中的visual-studio-project(C#)中有代码。我得到的错误是我的sql语法中存在错误(右边的语法在“else insert in”旁边)。但我无法弄清楚什么是错的

1 个答案:

答案 0 :(得分:0)

这里需要考虑的事情。我使用的是之前发布的问题中的数据集,但它可以很好地用于此目的......

考虑以下数据集......

jwplayer("myelement").setup({

 autostart: 'false'

});

让我们说我们想要给定成员的最新ID。我们可以这样做......

SELECT * FROM my_table;
+----+-----------+
| id | member_id |
+----+-----------+
|  1 |         1 |
|  2 |         2 |
|  3 |         1 |
|  4 |         2 |
|  5 |         3 |
|  6 |         1 |
|  7 |         2 |
|  8 |         4 |
|  9 |         1 |
| 10 |         3 |
| 11 |         4 |
| 12 |         1 |
| 13 |         2 |
| 14 |         3 |
| 15 |         5 |
| 16 |         5 |
+----+-----------+

......并且如果该成员不存在......

SELECT CASE WHEN member_id = 5 THEN id ELSE 0 END last_id FROM my_table ORDER BY id DESC LIMIT 1;
+---------+
| last_id |
+---------+
|      16 |
+---------+