have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':remark OR :remark IS NULL)\n AND (s.ftype_id = :ftype_id OR :ftype_' at line 8")
def fetch_data_api_mode(platforms, remark, user_id=None, ftype_id=None, inviter_id=None, page=None, page_size=None):
table_name_strategy_mapping = {
'okx': 'strategy_okxapimode',
'binance': 'strategy_bnapimode',
# 添加其他平台的映射关系
}
table_names_strategy = [table_name_strategy_mapping[p] for p in platforms]
union_queries = []
for strategy in table_names_strategy:
union_query = f"""
SELECT s.id, s.create_time, s.update_time, s.ftype_id, s.active, s.user_id, s.platform, s.remark, s.inviter_id,
s.user_id, u.username AS username, s.inviter_id, u_inviter.username AS inviter_name
FROM {strategy} AS s
LEFT JOIN system_user AS u ON s.user_id = u.id
LEFT JOIN system_user AS u_inviter ON s.inviter_id = u_inviter.id
WHERE (s.remark = :remark OR :remark IS NULL)
AND (s.ftype_id = :ftype_id OR :ftype_id IS NULL)
AND (s.user_id = :user_id OR :user_id IS NULL)
AND (s.inviter_id = :inviter_id OR :inviter_id IS NULL)
"""
union_queries.append(union_query)
query = f"""
SELECT id, create_time, update_time, ftype_id, active, user_id, platform, remark, inviter_id, inviter_name,user_id,username
FROM ({' UNION ALL '.join(union_queries)}) AS combined_tables
ORDER BY create_time DESC
LIMIT :page_size OFFSET :offset
"""
count_query = f"""
SELECT COUNT(*) AS total_count
FROM ({' UNION ALL '.join(union_queries)}) AS combined_tables
"""
query_parms = {
'remark': remark,
'ftype_id': ftype_id,
'user_id': user_id,
'inviter_id': inviter_id,
'page_size': page_size,
'offset': (page - 1) * page_size if page is not None and page_size is not None else None
}
result = execute_raw_sql_query(query, query_parms)
count_result = execute_raw_sql_query(count_query, query_parms)
return result, count_result[0]['total_count']
最新发布