如何在SQLite中使用LIKE查询?

时间:2013-07-08 21:05:22

标签: c sqlite

我有一张表格如下:

CREATE TABLE Foo(
    id      INT PRIMARY KEY,
    key     VARCHAR,
    value   VARCHAR
)

id       key     value
1        Hi      ABCDE/FGHI
2        Hi      DFGRT
3        Hi      FSEHU/

预先存在的库功能(为清晰起见而编辑):

char* Foo_getId(char *value){
    char *query = "SELECT id FROM Foo WHERE value LIKE ?";
    sqlite3_stmt *statement;
    int rc = sqlite3_prepare_v2(connection, query, strlen(query), &statement, NULL);
    rc = sqlite3_bind_text(statement, 1, value, strlen(value), SQLITE_STATIC);
    rc = sqlite3_step(statement);
    return strdup((char*)sqlite3_column_text(statement, 0));
}

我的功能:

char *getFooIdFromValueWithoutSlash(){
    return Foo_getId("WHAT GOES HERE???");
}
如何创建一个LIKE查询,使其匹配任何不包含' /'?

的值

E.g。 SELECT * FROM Foo WHERE value LIKE '%!/%'

注意:我尝试这样做的原因是我正在与某些代码接口,我只能传递其后的值。

2 个答案:

答案 0 :(得分:1)

你是说这个?

SELECT * FROM Foo WHERE value NOT LIKE '%/%'

答案 1 :(得分:1)

您无法构建与LIKE模式行为相同的NOT LIKE模式;唯一的特殊字符是%_

其他人的代码无法做你想做的事。