【问题标题】:java.sql.SQLSyntaxErrorException: name provided was not in the list of valid column labels:java.sql.SQLSyntaxErrorException:提供的名称不在有效列标签列表中:
【发布时间】:2015-08-24 13:00:11
【问题描述】:

我的查询

SELECT COUNT(*) as count FROM datasquare.users WHERE email_id = '"yup@krish.com"' and 
password = '"krish"' ALLOW FILTERING

我的桌子

 email_id        | password | user_id | user_name
-----------------+----------+---------+-----------
 vamsi@gmail.com |  krishna |    2915 |     vamsi

【问题讨论】:

  • 异常的描述是明确的,你没有向我们展示你的真实代码,所以目前我们无法帮助你。
  • 我正在使用 cassandra db 登录页面
  • 请提供相关代码以复制错误,这意味着正确的 Java 代码。您在哪里使用此代码以及使用此代码的原因可能是问题解释的一部分,但不提供任何直接指导让我们帮助您。
  • 旁白:您真的希望将用户的密码以纯文本形式存储在数据库中吗?您是否考虑过存储密码的哈希值? (哈希密码的方法有很多种。)
  • 另外,您永远不应该在生产环境中使用ALLOW FILTERING 运行查询。

标签: java database hadoop cassandra cql


【解决方案1】:

你不能使用计数作为标签

as count

使用total或类似的东西

as total_users

或类似避免使用保留关键字。

【讨论】:

  • 实际上,在 Cassandra 中,CQL SELECT COUNT(*) as count 是完全有效的。
  • 没有看到标签。但尽管如此,该名称暗示他的列名在 where 条件错误或列标签导致冲突。要么他的标签错了,要么他的表格没有按照他展示的那样写
  • 我没听明白...可以具体一点
  • 您的标签选择 count(*) 作为计数或 where 条件中指定的列会导致您的问题。确保您的 where 条件没有拼写错误,如果没有,请尝试使用不同的标签。
猜你喜欢
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2015-11-17
  • 2019-04-04
  • 2015-02-28
相关资源
最近更新 更多