0

我找不到问题的完美标题,但它来了..有没有一种方法可以在 java (android) 中将字符串“hello”更改为“hello”?这是为了让我的 sql 查询工作。例如,这是我用 java 为 android 应用程序编写的函数

public Cursor GetLecture(String course_code)
{
    SQLiteDatabase sqldb = this.getReadableDatabase();
    String query = "SELECT * FROM Lecture WHERE course_code =" + course_code;
    Cursor C = sqldb.rawQuery(query, null);
    return C;
}

这里的问题是查询需要的是 course_code 的值是例如'S11'而不是变量 course_code 所具有的“S11”,因为它是一个字符串..那么我怎样才能更改具有的字符串值双引号 ("") 到单引号 ('') 以使查询工作?有没有更短的方法或者我必须改变整个算法?提前感谢您的考虑!!

4

3 回答 3

2

字符串是由双引号分隔的字符序列。您不能用单引号分隔它们。那些是给字符的。这个是 Java 的。

在 SQL 查询的情况下,要将字符串括在单引号中,您可以这样做:

String query = "SELECT * FROM Lecture WHERE course_code = '" + course_code + "'";
于 2013-10-14T08:11:32.880 回答
2

如果你重写:

String query = "SELECT * FROM Lecture WHERE course_code =" + course_code; 

作为

String query = "SELECT * FROM Lecture WHERE course_code ='" + course_code + "'"; 
于 2013-10-14T08:11:36.287 回答
1

有一种特殊的构造可以使查询中的值:

p_query = "select * from mutable where name_field = ?";
mDb.rawQuery(p_query, new String[] { fieldValue });

或者您可以简单地添加转义符号和引号

String query = "SELECT * FROM Lecture WHERE course_code = \"" + DatabaseUtils.sqlEscapeString(course_code) + "\"";

从这里:

sql查询字符串中的Android引号

于 2013-10-14T08:15:46.280 回答