ds_equip.setfilter( "range LIKE '%AB%' ")
ds_equip.filter( )
ds_equip.retrieve()
如果我想检索range为AB和BC的项表达式应该怎么写?下面的好像不对
ds_criterion.setfilter( "range LIKE '%珠宝%' and range LIKE '%贵金属%' ")
ds_criterion.filter( )
ds_criterion.retrieve()
------解决方案--------------------
在表达式里面使用like要加括号,否则filter会返回错误的,具体原因查一下PB运算符的优先级就知道了,
另外,也可以改成pos函数来实现,可以不加括号的,呵呵~~
ds_criterion.setfilter( "(range LIKE '%珠宝%') and (range LIKE '%贵金属%' )")
ds_criterion.filter( )
ds_criterion.retrieve()
------解决方案--------------------
一、确定是要加括号的问题,你看一下setfilter的返回值就是了!
二、你的需求是什么,是要过滤包括含贵金属的珠宝的还是珠宝或是贵金属;
------解决方案--------------------
这是入门级的问题,不存在会出错的,你加个括号就知道了!
一、过滤包括含贵金属的珠宝
ds_criterion.setfilter( "(range LIKE '%珠宝%') and (range LIKE '%贵金属%') ")
二、过滤珠宝或是贵金属;
ds_criterion.setfilter( "(range LIKE '%珠宝%') or(range LIKE '%贵金属%') ")
几天前就发了信息要你加括号,为什么不加呢?
------解决方案--------------------
ds_criterion.filter( )
ds_criterion.retrieve()
filter()之后,不用运行retrieve(),,不然就有重新检索一次全部数据了。