如何使用 python 驱动程序在 Cassandra 的 where 子句中将日期时间用作集群?
How to use date time as a cluster in where clause in Cassandra using python driver?
我正在使用 python 驱动程序和 Cassandra,我创建了以下架构
CREATE TABLE channelFollowers(
channelID BIGINT,
isfavorite BOOLEAN,
userID BIGINT,
followDate TIMESTAMP,
PRIMARY KEY (userID, channelID, followDate)
);
我的问题是,如何在 select 的 where 子句中使用 followDate
并更新查询,我已经尝试过但它不起作用它给出了以下错误
typeerror: not enough arguments for format string
任何人都可以帮助我吗?
这是我的代码
channelLike = channelSession.execute("update channelfollowers set isblocked=%s, isfavorite=%s where userid=%s and channelid=%s and followdate=%s",[int(userid),int(channel_id),followDate]
根据我在错误消息和您的代码中看到的内容 - 您在格式字符串 (%s
) 中有 5 个占位符,但只传递了 3 个值。我相信您省略了 isblocked
和 isfavorite
参数的占位符 - 要么传递它们,要么将 %s
替换为 true/false 值(正如我从查询中看到的那样,它们应该具有布尔值类型)
P.S。您在 table 的定义
中也没有 isblocked
我正在使用 python 驱动程序和 Cassandra,我创建了以下架构
CREATE TABLE channelFollowers(
channelID BIGINT,
isfavorite BOOLEAN,
userID BIGINT,
followDate TIMESTAMP,
PRIMARY KEY (userID, channelID, followDate)
);
我的问题是,如何在 select 的 where 子句中使用 followDate
并更新查询,我已经尝试过但它不起作用它给出了以下错误
typeerror: not enough arguments for format string
任何人都可以帮助我吗?
这是我的代码
channelLike = channelSession.execute("update channelfollowers set isblocked=%s, isfavorite=%s where userid=%s and channelid=%s and followdate=%s",[int(userid),int(channel_id),followDate]
根据我在错误消息和您的代码中看到的内容 - 您在格式字符串 (%s
) 中有 5 个占位符,但只传递了 3 个值。我相信您省略了 isblocked
和 isfavorite
参数的占位符 - 要么传递它们,要么将 %s
替换为 true/false 值(正如我从查询中看到的那样,它们应该具有布尔值类型)
P.S。您在 table 的定义
中也没有isblocked