ilike操作员在openerp 7中表现不同

时间:2013-05-23 10:26:10

标签: openerp

我知道运营商ilike已经关于sql了。放置在类

中时它会以这种方式执行
 'PSS01' ilike 'pss01' -> will return true
 'PSS01' ilike '%ss01' -> will return true
 'PSS01' ilike 'ss01' -> will return false

但在开幕式7中,它以这种方式执行

 'PSS01' ilike 'pss01' -> returns true
 'PSS01' ilike 'ss01' -> returns true **(it should return false)**

我的代码在

下面
 repeted_ids = prod_serial_obj.search(cr, uid, ['&',('name', 'ilike', line.prod_ser_no),('product_id', '=', product_id)])

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

OpenERP会自动将ilike运算符的右手值包含在百分比内。所以当你写域

[('name', 'ilike', 'ss01')]

OpenERP将其转换为

name ilike '%ss01%'

为避免添加这些通配符,您必须使用=ilike运算符。

[('name', '=ilike', 'ss01')]

将转换为

name ilike 'ss01'