该列在数据库中定义为binary(16)
,值是UUID
。
数据库是MySql。
答案 0 :(得分:0)
您可以使用binary
函数将string
字段格式化为HEX
。在这种情况下,典型的Cube.js模式如下所示:
cube(`Users`, {
// ...
dimensions: {
companyId: {
sql: `HEX(${CUBE}.company_uuid)`,
type: `string`
}
}
});
在这种情况下, Users.companyId
字段的过滤器看起来像
{
// ...,
filters: [{
dimension: "Users.companyId",
operator: "equals",
values: ["0123456789ABCDED0123456789ABCDEF"]
}]
}
如果您在此binary
列上有索引,则可能要使用FILTER_PARAMS
提示MySQL查询计划程序,以便可以使用它:
cube(`Users`, {
sql: `SELECT * FROM users WHERE ${FILTER_PARAMS.Users.companyId.filter(
v => `company_uuid = UNHEX(${v})`
)}`,
// ...
dimensions: {
companyId: {
sql: `HEX(${CUBE}.company_uuid)`,
type: `string`
}
}
});
在https://cube.dev/docs/cube#context-variables-filter-params上详细了解FILTER_PARAMS
。