草庐IT

Nil-coalescing

全部标签

mysql - 使用 coalesce 在查询中设置变量的初始值

对不起,如果已经有人问过这个问题,但是搜索coalesce会得到一堆对我没有帮助的结果......在mysql中,我尝试使用coalesce为变量设置初始值,该变量是使用依赖于现有值的表达式设置的。我真的很想用一个语句来完成它,但是我遇到了一个问题,当变量为null时从coalesce返回的值似乎没有“固定”并且我每次都得到初始值。奇怪的是,如果我将变量最初设置为null,它会按预期工作。考虑这个查询:select@y:=coalesce(@y+1,5)fromtablelimit5;它返回:55555但是这个:set@z=null;select@z:=coalesce(@z+1,5)

mysql - 如何最佳地在 WHERE 子句中使用 COALESCE()?

这是我的查询:selectcoalesce(qa2.subject,qa.subject)asquestion_subject,qa.body,(selectcount(*)fromviewed_itemsviwherecoalesce(qa.related,qa.id)=vi.question_id)astotal_question_viewedfromquestions_and_answersqaleftjoinquestions_and_answersqa2onqa.related=qa.idwherebodylike':entry';如您所知,MySQL优化器永远不能在coal

sql - 为什么在sql语句中使用COALESCE()?

我正在重构一些旧代码并偶然发现了这个命名查询(它在mysql之上使用hibernate):deleteFfromfooFinnerjoinuserDUonF.user_id=DU.idwhere(COALESCE(:userAlternateId,null)isnullorDU.alternate_idlike:userAlternateId)and(COALESCE(:fooId,null)isnullorF.foo_idlike:fooId)and((COALESCE(:fromUpdated,null)isnullorF.updated_at>=:fromUpdated)and(

mysql - 结合 CONCAT() 和 COALESCE() 在 MySQL 中生成 JSON

我正在从函数构建小的JSONblock,我需要像这样在引用非空值时过滤空值(MySQL5.0,因此没有内置的JSON函数):COALESCE(CONCAT('[',group_concat(CONCAT('{"key":"',REPLACE(a.val,'"','\\"'),'"}')SEPARATOR','),']'),'null')ASjsonval它输出如下内容(这是一个要嵌入到完整JSONblock中的值):值:[{"key":"foo"},{"key":"bar"},{"key":"baz"}]没有值(NULL):null空字符串:[{"key":""}]对于每个a.val,

mysql - MySQL 中的 COALESCE 中的 SELECT

我正在尝试在MySQL中执行以下操作:UPDATExSETy=COALESCE(SELECTzFROMtableWHEREa=bANDc=dANDe=fLIMIT1,SELECTzFROMtableWHEREa=bANDc=dLIMIT1,SELECTzFROMtableWHEREa=bLIMIT1);这对我来说听起来很有道理。我正在尝试用最合适的值更新一列。如果我能找到符合3个条件的记录->那就是我需要的。否则符合2个标准的记录,否则记录仅符合一个标准。我可以在3个更新查询中执行此操作,但我不明白为什么这不起作用。根据manual:COALESCE返回列表中的第一个非NULL值,如果

5.postgresql--COALESCE

在PostgreSQL中,COALESCE函数返回第一个非空参数。它通常与SELECT语句一起使用以有效处理空值。COALESCE函数接受无限数量的参数。它返回第一个不为空的参数。如果所有参数都为null,则COALESCE函数将返回null。COALESCE函数从左到右计算参数,直到找到第一个非空参数。不评估第一个非空参数中的所有剩余参数。CREATETABLEitems(IDserialPRIMARYKEY,productVARCHAR(100)NOTNULL,priceNUMERICNOTNULL,discountNUMERIC);INSERTINTOitems(product,pric

ios - 有关如何从所需设备捕获 "attempt to insert nil object"的建议

这是一种情况:Hockeyapp和testflight时不时地提示我"attemptingtoinsertnilobject"在可变字典/数组中。我知道正确的做法是始终检查nil,当它有意义时我会这样做。我们的测试人员无法捕捉到这些崩溃,但AppStore用户显然可以。我的猜测是有时服务器在不应该返回NSNulls时返回。因此,不要在这个庞大的项目中到处插入nil检查,我的想法是为测试人员创建一个单独的目标,并对集合类使用方法调配。比如,我将用我的swizzled_insertObject:atIndex替换insertObject:atIndex,如果对象实际上是nil,我会在它崩溃

ios - 'NSInvalidArgumentException',原因 : '*** -[NSURL initFileURLWithPath:]: nil string parameter'

我对这里发生的事情摸不着头脑......打印插件不工作......我正在尝试向应用程序添加打印机插件。映射我的xml并加载html文件后,我没有在Xcode中看到错误。但是,当我运行该应用程序时,它崩溃了并且日志显示:Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'*-[NSURLinitFileURLWithPath:]:nilstringparameter'我很担心,因为自从过去24小时以来我无法克服它...任何帮助都会很好..或者如果有人可以让我知道如何在我的应用程序中准确运行打印机

objective-c - 将对象设置为 nil 时不调用 dealloc 方法

我有一个问题。我首先创建了一个扩展NSObject的对象,我为description和dealloc方法提供了覆盖。这是我的Employee.m文件:@implementationEmployee.....-(NSString*)description{return[NSStringstringWithFormat:@"EmployID:%dhas$%dvalueofassets",[selfemployeeID],[selfvalueOfAssets]];}-(void)dealloc{NSLog(@"deallocating..%@",self);[superdealloc];}在

iOS9 崩溃 : *** -[__NSArrayM insertObject:atIndex:]: object cannot be nil

在iOS9中,我的应用程序SWPi在main.m中崩溃:#importintmain(intargc,char*argv[]){NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];intretVal=0;@try{NSLog(@"MAIN:");retVal=UIApplicationMain(argc,argv,nil,nil);}@catch(NSException*exception){NSLog(@"CRASH:%@",exception);NSLog(@"StackTrace:%@",[exceptioncallStac