当前位置: 首页 > 面试题库 >

gocql SELECT *不返回所有列

艾志尚
2023-03-14
问题内容

我在尝试为我的应用程序实现一些计数器时遇到了这种奇怪的行为。基本上,我做了一个这样的计数器表:

CREATE TABLE stats_dev.log_counters (
  date text PRIMARY KEY,
  all counter
);

然后,我也想计算一些特定类型的消息,因此在Go应用程序中,我更改了表以添加以前没有的列。

我的应用程序正在增长,并且我开始有30列以上(不应超过50列),并且当我想检索所有这些计数器时,结果中缺少一些列。

query := s.Query(`SELECT * FROM `+_apiCountersTable+` WHERE date IN ?`, dates)
res, err := query.Iter().SliceMap()

这给我返回了30列超过34列的信息。虽然,当我在CQLSH上执行请求时:

cqlsh:stats_dev> SELECT * FROM api_counters WHERE date = 'total';

我得到适当的完整结果。因此:

  1. 这是否来自我的要求,应该有所不同?
  2. 可能来自gocql驱动程序吗?
  3. 这种模式完全愚蠢吗?

我的临时解决方案是从system.schema_columns表中选择列名称和字符串。将所有这些都加入到我的SELECT查询中…

非常感谢您的帮助。


问题答案:

感谢安迪的帮助。

起初,我认为考虑到您告诉我的内容,我宁愿偶尔执行一次SELCT column_name操作,system.schema_columns并在更改表时刷新它。我只是strings.join()在那儿的列SELECT FROM api_counters。它可以正常工作,但是如果我有2个不同的实例,并且一个实例将更新架构,另一个实例将收到GET请求,则该实例仍然不知道新列。

然后,我重新整理了想法,发现显然还有另一种方法,我只是更改了此模式: CREATE TABLE stats_dev.api_counters ( date text, description text, all counter, PRIMARY KEY (date, description) );
然后,我根据期望的描述更新了该字段。到目前为止,一切都很好。

我知道绝对是选项3:我的模式不是最好的模式。



 类似资料:
  • 问题内容: 我在MySQL中有以下查询: 该表有27行,但查询仅返回1行。基于 这个问题, 我认为可能是由于WHERE子句。该表具有字段id,属性,字段,值,其中是第三个表的外键(我不需要从中获取数据)。 有没有一种方法可以从第一个表中选择所有行,包括表#2中字段为23的值(如果没有字段23,则为NULL)? 问题答案: 当然。将WHERE条件移动到JOIN:

  • 我做了一个不和谐的机器人,想添加<代码>!我添加成员部分,但它返回1,但我的服务器有2个人成员和4机器人(所有我的)为什么?这是代码:

  • 我从sql检索数据并存储在列表中。然后我将它转换为GenericEntity并尝试使用response.Entity().build()返回它;但它只返回第一个项目。 我确认清单上包含了所有的项目。所以问题应该是列表到实体的转换和/或响应的返回。我尝试循环响应部分,但它没有工作。 List List=new arraylist<>();字符串stmt=“”;PreparedStatement PS

  • 问题内容: 我需要在读取的1次中读取Amazon SQS队列中的所有消息,然后根据创建的时间戳对其进行排序并对其进行业务逻辑。 为了确保检查所有SQS主机是否有消息,我启用了长轮询。我这样做的方法是将队列的默认等待时间设置为10秒。(任何大于0的值都将启用长轮询)。 但是,当我尝试读取队列时,它仍然无法提供所有消息,因此我必须进行多次读取才能获取所有消息。我什至对每个接收请求通过代码启用了长时间轮

  • 在RoboMongo(0.9.0-RC09)中运行以下mongo查询会给出正确的文档数量(使用游标计数函数),而迭代所有文档只会返回一小部分文档: 我们是否需要专门配置查询以返回所有文档?

  • 我正在查询URI以从web服务获取一些数据。那很好。但我注意到,我的json hase多页的page\u计数,但只返回第一页数据。 以下是json的样子: 如何返回所有页面而不是只返回第一页?我知道这可能不是个好主意,但我该怎么做? 更新:web服务的URI类似于: 谢谢