SQLite, где предложение действует странно с полями TEXT - PullRequest
4 голосов
/ 01 октября 2011

Я искал вверх и вниз по sqlite.org и не могу понять это. Я привык к MySQL, поэтому думаю, что я что-то упускаю.

См. Следующий код:

sqlite> select id,event_number,must_say from events where id=28;
28|'28'|'AFK'
sqlite> select id,event_number,must_say from events where must_say='AFK';
sqlite> select id,event_number,must_say from events where must_say like 'AFK';
sqlite> select id,event_number,must_say from events where must_say like 'A%';
sqlite> select id,event_number,must_say from events where must_say=='AFK';
sqlite>

Само собой разумеется, я действительно ожидал, что будет возвращено следующее для ВСЕХ вышеупомянутых запросов, а не только для первого:

28|'28'|'AFK'

Я получаю такое поведение во всех текстовых полях. Кажется, я не могу искать вообще.

Вот схема моей таблицы событий с пропущенными несущественными полями:

CREATE TABLE events (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    EVENT_NUMBER INTEGER,
    MUST_SAY TEXT
);

Есть идеи? Я просто хочу иметь возможность поиска по произвольным текстовым полям в таблице.

Редактировать: я использую SQLite3.

1 Ответ

1 голос
/ 02 октября 2011

У вас также могут быть пробелы в столбцах.

Вы можете видеть пробелы с

select '|' || must_say || '|' from events

Вы можете видеть непечатные с

select hex(must_say) from events
...