【问题标题】:Using Like statement in SQLITE on android studio在 android studio 上的 SQLITE 中使用 Like 语句
【发布时间】:2019-09-16 17:11:06
【问题描述】:

我有一个包含汽车信息的 SQLite 数据库。我想销售带有 BMW 品牌的汽车。 我有这样的声明:

String selectQuery = "SELECT  * FROM " +Note.TABLE_NAME+ " where " + "BRAND" + " like "+ "BMW";

应用崩溃和日志显示:

no such column: BMW (code 1): , while compiling: SELECT  * FROM adds where BRAND like BMW

当我使用这个应用程序时:

 String selectQuery = "SELECT  * FROM " +Note.TABLE_NAME+ " where " + "AGE" + " like "+ "10";

之后我如何使用 Like 和字符串?

【问题讨论】:

  • BRAND 和 BMW 是否都在表中?
  • BMW 是一个字符串文字,应该用单引号括起来,或者最好作为参数传递给 sql 语句。
  • BRAND 是列,BMW 应该是值。我只是不明白为什么它适用于 AGE 而不适用于 BRAND

标签: java android sqlite android-studio


【解决方案1】:

您需要用单引号将要检索的值括起来。

试试这个:

String selectQuery = "SELECT * FROM " +Note.TABLE_NAME+ " where " + "BRAND" + " like 'BMW'";

或者,您不需要将查询的每个单词放在各自的引号中。你可以使用:

String selectQuery = "SELECT * FROM " +Note.TABLE_NAME+ " where BRAND like 'BMW'";

【讨论】:

    【解决方案2】:

    对于声明:

    SELECT  * FROM tablename where BRAND like BMW
    

    SQLite 将BMW 视为列名(当然不存在),因此代码失败。
    应该是:

    SELECT  * FROM tablename where BRAND like 'BMW'
    

    但对于声明:

    SELECT  * FROM tablename where AGE like 10
    

    SQLite 不将10 视为列名,因为它是一个字面值,会隐式转换为TEXT'10',并且代码可以正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2013-05-18
      • 2020-09-01
      • 2015-12-15
      • 2020-01-17
      • 1970-01-01
      相关资源
      最近更新 更多