SELECT CASE 
       WHEN (SELECT count(1) FROM TestTable WHERE `FeedID`='666')>0
       THEN 
           'true' 
       WHEN  (SELECT count(1) FROM TestTable WHERE `FeedID`='666')=0
       THEN
           INSERT INTO TestTable (`FeedName`,`FeedID`) VALUES ('kkk','666')
       END 'Result';
我是想如果没有FeedID='666',就插入一条,
但如果有
我是想在'true'哪里再添加一些动作的,
只是现在想测试'false'的功能,都没能通过了,语法有错? 还是 CASE WHEN 不允许这样操作?
|      1xumng123      2020-10-17 08:34:26 +08:00 via iPhone laravel orm withcount() | 
|  |      2akiakiseofficial      2020-10-17 10:03:16 +08:00 via iPhone 不谈有没有你希望的解决方案。 建议放到事务里做,SQL 不要附带复杂逻辑。 | 
|      3myevery      2020-10-17 10:14:21 +08:00 这种在程序里判断执行不香么 | 
|  |      4lihongming      2020-10-17 11:31:56 +08:00 via iPhone @myevery 我猜这可能是面试题 | 
|      5qazwsxkevin OP @xumng123 用的环境是 Python,没有 PHP,搜这个之前还不知道是什么,哈哈 @xlui,知道的,至于为什么,后面说 @myevery,有尴尬的困难。。 @lihongming 哇,这个问题能做面试题,那么可能是有难度了。。。 事情是自己折腾的,不是公司和商业环境,允许不遵守一些事情乱来,是这样的:要做这个操作,是在程序块里的小节点,如果按我低水平的 Python 的做法,完成整个最后需求,先 SELECT,产生 10 来个本地变量,然后本地算法对比,再做决定,同时握手会产生 10 来个短链接,反正服务器也不忙,弄个 MySQL 语句扔过去,能省很多事,同时自己可以学习一下 SQL 的玄妙。。。 ,在 SQL 语句里能 IF ELSE,还真是省心的,SQL 的操作后面改动也不会很大。 如果按上面的大哥提到可以做面试题,那么看来还是很难。。。 | 
|      6nuistzhou      2020-10-17 15:00:43 +08:00 via iPhone 卧槽还能这么操作吗? select 嵌套 insert ? | 
|  |      7vone      2020-10-17 16:55:16 +08:00 | 
|      8zhangysh1995      2020-10-19 13:43:11 +08:00 按照语法,THEN 只可以填一个一行一列的 relation (一个值),scalar query 满足这个条件,但是 false 分支 insert 不满足。 |