【问题标题】:Sql query searching for the first three letterssql查询搜索前三个字母
【发布时间】:2017-12-05 19:16:49
【问题描述】:

我的 Sql 查询不正确。我想创建一个查询来搜索前三个字符等于给定参数的公司

@NamedNativeQuery(
    name="Company.retrieveNameCompanyForFirstThreeChar",
    query =" SELECT SUBSTRING(company_name, 1, 3) AS keyword from companies 
    WHERE = :KEYWORD",
    resultClass = Company.class
)

我的错误:

org.springframework.dao.InvalidDataAccessResourceUsageException: 无法提取结果集; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException:无法提取 结果集

【问题讨论】:

  • 这样可以吗? WHERE = :KEYWORD?在WHERE之后=之前应该有什么东西吗?

标签: sql hibernate


【解决方案1】:

试试这个:

SELECT company_name
FROM companies 
WHERE SUBSTRING(company_name FROM 1 FOR 3) = :KEYWORD;

如果出现空格,您可能需要在“company_name”周围添加一个 TRIM() 函数。

【讨论】:

    【解决方案2】:

    mysql提供了subtring函数。

    SELECT company_name FROM companies WHERE SUBSTRING(company_name FROM 1 FOR 3) = :KEYWORD;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多