0

次のようなテーブルがあります。

CREATE TABLE 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(ステートメント、1、値、strlen(値)、SQLITE_STATIC);
    rc = sqlite3_step(ステートメント);
    return strdup((char*)sqlite3_column_text(statement, 0));
}

私の機能:

char *getFooIdFromValueWithoutSlash(){
    return Foo_getId("何がここに入るのか???");
}
「/」を含まない値と一致するように LIKE クエリを作成するにはどうすればよいですか?

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

注:これをやろうとしている理由は、他の誰かのコードとやり取りしていて、そのコードの後に​​置かれた値しか渡すことができないからです。

4

2 に答える 2

1

これのことですか?

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

LIKEパターンと同じように動作するパターンを構築することはできませんNOT LIKE。唯一の特殊文字は%_です。

他の誰かのコードは、あなたが望むことをすることができないということです。

于 2013-07-09T19:38:24.140 に答える