0

我有一张如下表:

创建表 Foo(
    id INT 主键,
    键 VARCHAR,
    值 VARCHAR
)

id 键值
1 嗨 ABCDE/FGHI
2 你好 DFGRT
3 嗨 FSEHU/

预先存在的库函数(为清楚起见进行了编辑):

char* Foo_getId(char *value){
    char *query = "SELECT id FROM Foo WHERE value LIKE ?";
    sqlite3_stmt *语句;
    int rc = sqlite3_prepare_v2(连接,查询,strlen(查询),&语句,NULL);
    rc = sqlite3_bind_text(statement, 1, value, strlen(value), SQLITE_STATIC);
    rc = sqlite3_step(语句);
    返回 strdup((char*)sqlite3_column_text(statement, 0));
}

我的功能:

字符 *getFooIdFromValueWithoutSlash(){
    return Foo_getId("这里发生了什么???");
}
如何创建一个 LIKE 查询,使其匹配任何不包含“/”的值?

例如SELECT * FROM Foo WHERE value LIKE '%!/%'

注意:我尝试这样做的原因是我正在与其他人的代码交互,我只能传递放在 like 之后的值。

4

2 回答 2

1

你是这个意思?

SELECT * FROM Foo WHERE value NOT LIKE '%/%'
于 2013-07-08T21:07:00.543 回答
1

您不能构造与LIKE模式行为相同的NOT LIKE模式;唯一的特殊字符是%and _

别人的代码就是不能做你想做的事。

于 2013-07-09T19:38:24.140 回答