Return 不同于 sql 语句 odoo 9
Return distinct from sql statment odoo 9
我在数据库中共有 3 行,其中一行 ID = 1,在控制台中显示 3 行而不是 1 行!
@api.multi
def call_func(self):
result = []
for data in self.search([]):
self._cr.execute('''select distinct
date
from
mytable
WHERE id = 1''')
for line in self._cr.dictfetchall():
print line["date"]
我添加了 distinct 但不起作用。
输出为:
2016-01-01 00:00:00
2016-01-01 00:00:00
2016-01-01 00:00:00
我需要 2016-01-01 00:00:00
SQL 语句看起来不错。您是否直接使用客户端在数据库服务器上执行了该语句?是不是只有一条记录?
如果是,我想你的问题可能出在self.search([])
。那是你写的功能吗?是否对记录执行搜索?如果是这样,您是否有可能基于空字符串和此 returns 您 table 的所有 3 条记录进行搜索?
如果 self.search([]) returns 一个包含 3 个元素的数组,那么您只需在同一行上执行 SELECT distinct
三次。
如果那是你的问题,那么你可以通过删除这部分来解决它:
for data in self.search([]):
我在数据库中共有 3 行,其中一行 ID = 1,在控制台中显示 3 行而不是 1 行!
@api.multi
def call_func(self):
result = []
for data in self.search([]):
self._cr.execute('''select distinct
date
from
mytable
WHERE id = 1''')
for line in self._cr.dictfetchall():
print line["date"]
我添加了 distinct 但不起作用。
输出为:
2016-01-01 00:00:00
2016-01-01 00:00:00
2016-01-01 00:00:00
我需要 2016-01-01 00:00:00
SQL 语句看起来不错。您是否直接使用客户端在数据库服务器上执行了该语句?是不是只有一条记录?
如果是,我想你的问题可能出在self.search([])
。那是你写的功能吗?是否对记录执行搜索?如果是这样,您是否有可能基于空字符串和此 returns 您 table 的所有 3 条记录进行搜索?
如果 self.search([]) returns 一个包含 3 个元素的数组,那么您只需在同一行上执行 SELECT distinct
三次。
如果那是你的问题,那么你可以通过删除这部分来解决它:
for data in self.search([]):