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