00:00
好,那我们下面呢,咱们来讲一下咱们第二个特殊的circle。叫什么呢?叫做批量删除啊,大家知道什么叫批量删除吧,其实就是通过一个SQL语句啊来删除多条数据。那咱们这个批量删除的circle该如何去写呢?啊,有两种写法,大家想一下,首先第一种呢,叫做delete from,表明while ID等于一或ID等于二,那这个时候咱们删除的是不是就是ID等于一或ID等于二的数据?好,或者说我们也可以怎么办,我们也可以来设置一个while ID in括号,然后里面呢,然后咱们可以把要删除的ID中间用逗号进行拼接,写在小括号中就行。好,下面咱们就给大家来演示一下啊,首先呢,咱们添加一些测试数据啊,然后咱们在这来添加。行,就这十条就可以啊,好,然后比如说我们先通过第一个S把五和六这两条数据给它删除掉,怎么写呢?Delete from t_user,然后while ad等于1OR ad等于。
01:09
二哎,这样写就可以,然后下面咱们加上一个分号,然后我们现在咱们来一个执行啊,不要不不删除五和六啊哎,五,然后这个是五,这个是六。行,然后现在咱们来一个F9执行,大家看两条数据是不是就删除掉了对吧?当然咱们要来验证的circle口不是这个circle口啊,而是下面这个circle,然后这个in这个关键字大家应该都学习过吧,然后怎么写啊,叫做while ID in in,然后括号,然后里面把咱们当前要删除的ID啊,中间用逗号拼接起来就行,七逗号八就可以啊。好,然后现在我们再来一个F9执行,大家看这些数据是不是就都没了,OK吧,好,然后我们主要来说的是这个搜口,如果我们要通过这个soq舞句来实现一个批量删除,那这个时候大家说我们是不是就需要干嘛呀,来知道我们当前要删除的ID,然后把它们中间的用逗号把它给拼接起来。
02:09
好,然后批量删除的功能呢,咱们其实还是非常常见的,就比如说呀,咱们在自己的手机上,或者说是在我们的一些。邮箱里面对吧?咱们要想去批量删除一些信息,然后呢,我们是不是就需要来实现这个功能,对吧?然后这个功能咱们在页面中一般都是结合着复选框来实现的,大家想一下怎么实现呢?比如说咱们现在呢,有一个表格,然后表格里面每一条数据前面都有一个复选框,然后呢,我们在当前的页面中肯定会有一个批量删除的按钮,当我们来点击这个按钮的时候,OK,然后比如说这两条数据选中了,那我们是不是就可以将这两条数据从数据库中把它删除掉,那到底该怎么删呢?大家注意很简单,然后我们只需要来获得这条数据的ID和这条数据的ID,然后将它传输到服务器中,如果你要用这种方式来删除,那咱们就不需要拼接了,大家只需要干嘛呀,把这两个ID获取到,然后把它拼成是这个circleq就行,而如果我们要使用的是这个circleq语句,那咱们是不是只需。
03:18
需要把这两个ID啊,然后中间用逗号把它给拼接起来就行,OK吧,这样的啊好,那下面呢,咱们就把这个功能来实现一下呗,首先咱们来找到咱们的map接口。然后把这个方法来写一下,返回值是VO,方法名咱们叫做delete more delete more user OK,然后这里面要写什么,大家记得不是一个死讯类型的ids。也就是我们当前要删除的ID,通过逗号拼接之后的结果,然后咱们在这加上一个a per,为什么要加就不说了啊,然后大家看一下这个是什么功能,叫做批量删除的功能,好,然后我们把它复制,然后放在我们当前的映射文件中。
04:04
让我把这个SQL语句啊,咱们来写一下。好,然后ID要跟方法名一致,然后下面呢,咱们就可以来写这个circle了,Delete from t_user,然后while ID,然后括号,大家看怎么写啊,再说一遍,这里面的ids长什么样,直接就是我们拼接之后的效果,九逗号十,九逗号十能看懂吧,那所以我们现在要做的事情,大家想想是不是就是要把我们的ids。然后的值直接放在咱们当前的小括号中,也就是说我们现在是不是就要通过咱们的井号大括号或Dollar大括号来获取参数值,把它给拼接在咱们的SQ里面的,那这个时候咱们应该用什么呢?大家想想,那咱们第一印象我肯定是要用井号大括号在这通过ids,然后来访问我们当前的这个参数。
05:00
但是你能这样去写,不能啊,不能,为什么不能这样去写呢?下面咱们来测试一下啊,然后来写一个方法,或者说咱们直接来复制一下吧。好,然后方法名咱们叫做delete more user,叫delete more user OK,好,然后咱们要来调用的方法呀,然后是map.delete more u,比如说咱们传过去的就是九逗号10OK,然后下面大家看好我在这一个执行,大家能不能想到它为什么会报错?啊,这肯定是会报错的啊,大家来看。为什么他会报错呢?大家想一下为什么?咱们说过井号大括号和多大括号的区别吧,井号大括号的特点是啥?本质就是占位符负值,所以说它会为我们当前所赋的值两边啊自动加上一个单引号,那所以说我们当前咱们的circle就变成什么样了,大家想想。啊,它是不是被解析之后,它是不是就变成了单引号九逗号十。
06:03
这个circle口语句对不对呢?我们把它放到我们的circle样里面,你来执行一下不就知道了吗?我们现在咱们来一个执行F9,大家看直接报错,看到了没?你看他在这报的错跟他在这报的错一样不一样,大家看一下看这句话。一样不一样,一模一样,所以说啊,然后大家注意这个S口语句是有问题的,什么问题,我们当前咱们的这个小括号里面啊,咱们是不能加单引号的,加单引号直接报错,当然这个S有句也有对的时候。什么时候,比如说之前呀,然后用的是我记得我用过这个my circleql这个5.5的版本,应该是这个my circleq5.5的版本里面啊,这个CIRCLEQ5句是没有任何问题的,但是它删除的效果跟咱们想要的效果不一样,他虽然说不会报错,但是呢,它删除的永远都是第一个,也就是说不管这个SQ句,你不管你执行几次,在买S5.5的版本里面,它删除的都只有ID为九的这个用户信息。
07:05
所以说虽然他不报错,但是它实现的效果跟我们想要的效果也是不一样的,那所以说这个时候咱们怎么办呢?大家注意,你要想把这个问题解决啊,你一定要知道它是为什么会出现这个问题,就是因为你用的是井号大括号,它是会为我们当前所负的值两边自动加单引号的,所以说他才报错了,那咱们是不能来要这个大括号,这个大单引号的,那怎么办?那你就只能使用dota大括号呗。对不对?好,这个时候大家看好,我现在我再来一个执行,大家来看一下啊,好,这个时候还有没有问题了,没有问题了,大家看吗?90,然后现在咱们去来找到我们当前的表数据,我们现在再来一个刷新,大家看90还有没有了,没有了啊,所以说呢,这个大案一定要看好,如果我们用的是这种SQ语句来实现批量删除的话,那咱们没有别的办法,你在这你只能用什么Dollar打括号。
08:03
好,然后或者说我们过两天咱们再学习咱们的这个动态circle的时候,对吧,我们会讲一个for一起标签,然后到时候呢,我们也可以来使用哪一种方式实现批量删除呀,来使用咱们的这种方式来实现批量删除,OK吧,那这个咱们等到讲到动态circle的时候再说啊,OK。
我来说两句