我有一张表格如下:
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 '%!/%'
注意:我尝试这样做的原因是我正在与某些代码接口,我只能传递其后的值。
答案 0 :(得分:1)
你是说这个?
SELECT * FROM Foo WHERE value NOT LIKE '%/%'
答案 1 :(得分:1)
您无法构建与LIKE
模式行为相同的NOT LIKE
模式;唯一的特殊字符是%
和_
。
其他人的代码无法做你想做的事。