0

我已经知道关于 sql 的操作员 ilike。放置在 where 类时它将以这种方式执行

 'PSS01' ilike 'pss01' -> will return true
 'PSS01' ilike '%ss01' -> will return true
 'PSS01' ilike 'ss01' -> will return false

但是在 openerp 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)])

有人能帮忙吗?

4

1 回答 1

1

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

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

OpenERP 将其转换为

name ilike '%ss01%'

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

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

将转换为

name ilike 'ss01'
于 2013-05-25T09:07:55.247 回答