Android中的SQLite大小写表达式

Android中的SQLite大小写表达式,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,简单问题:大小写表达式在安卓系统中有效吗? 我正在尝试实现一个表达式,该表达式在插入时检查用户值,并根据它进行一些修改。我知道表达式在语法上是正确的,因为它在INSERT命令内的SQLite提示符下工作。但是,当我尝试在Android中使用它时(使用SQLiteDatabase.insert()),表达式被视为字符串。我还尝试使用一些核心SQLite函数实现它,这个新表达式也被视为字符串。你知道为什么会这样吗 编辑1:rawQuery()也不是选项。该方法被忽略。是似乎与方法调用相关的logca

简单问题:大小写表达式在安卓系统中有效吗? 我正在尝试实现一个表达式,该表达式在插入时检查用户值,并根据它进行一些修改。我知道表达式在语法上是正确的,因为它在INSERT命令内的SQLite提示符下工作。但是,当我尝试在Android中使用它时(使用
SQLiteDatabase.insert()
),表达式被视为字符串。我还尝试使用一些核心SQLite函数实现它,这个新表达式也被视为字符串。你知道为什么会这样吗


编辑1:
rawQuery()
也不是选项。该方法被忽略。是似乎与方法调用相关的logcat消息。

插入方法将所有值视为实际值,而不是SQL表达式。 因此,当您使用这样的代码时:

INSERT INTO Tab(Col1) VALUES('CASE X WHEN 42 THEN ''y'' END')
cv.put(“Col1”,“42时的情况X,然后是'y'结束”);
db.插入(“制表符”,空,cv);
然后假设字符串只是一个字符串,并且您希望插入这个字符串。这将产生如下SQL命令:

INSERT INTO Tab(Col1) VALUES('CASE X WHEN 42 THEN ''y'' END')

如果您想做比
insert()
所设计的简单情况更复杂的事情,则必须改用并手动构建整个SQL语句。

insert方法将所有值视为实际值,而不是SQL表达式。 因此,当您使用这样的代码时:

INSERT INTO Tab(Col1) VALUES('CASE X WHEN 42 THEN ''y'' END')
cv.put(“Col1”,“42时的情况X,然后是'y'结束”);
db.插入(“制表符”,空,cv);
然后假设字符串只是一个字符串,并且您希望插入这个字符串。这将产生如下SQL命令:

INSERT INTO Tab(Col1) VALUES('CASE X WHEN 42 THEN ''y'' END')

如果您想做比
insert()
设计的简单案例更复杂的事情,您必须使用,并手动构建整个SQL语句。

感谢您的回答,但我使用
execSQL()
解决了我的问题(尽管文档中没有推荐使用)

感谢您的回答,但是我用
execSQL()

使用rawQuery避免用sqlite转义do复杂的东西使用rawQuery避免用sqlite转义do复杂的东西解决了我的问题谢谢你对
insert()
的澄清,但是
rawQuery()
似乎不是一个选项。我已经试过了,但当使用这个表达式时,它似乎被忽略了。我将重试并检查是否有任何有关此的日志消息。如果您对提供给
rawQuery
的语句有问题,请提出新问题。感谢您对
insert()
的说明,但
rawQuery()
似乎不是一个选项。我已经试过了,但当使用这个表达式时,它似乎被忽略了。我将重试并检查是否有关于此的日志消息。如果您对提交给
rawQuery
的语句有问题,请提出新问题。