Я создал таблицу SQLite для моей коллекции DVD. У меня есть поле «Жанр» со следующими значениями: Приключения, Анимация, Биография, Рождество, Комедия, Преступление, ..., Западная. Поле «Жанр» имеет тип int, где каждый бит целого представляет один из 24 жанров. Например, если бит 4 установлен, DVD-комедия. Я хочу иметь возможность получить подмножество таблицы в зависимости от жанра. Например, я пробовал это:бит операции?
SELECT * FROM AV WHERE GENRE & 1 <<4> 0 ORDER BY Title
для извлечения всех комедий. Как ни странно, оператор SQL выполнен нормально, но не с ожидаемыми результатами.
Я знаю, что могу просто сохранить жанры как VarChar, но я хотел бы заставить его работать, сохранив жанры в виде битов в целое число.
Зачем вам это делать ...? Почему бы просто не сказать, что приключенческие фильмы «1», а «Анимация» - «2» и т. Д.? Похоже, вы просто пытаетесь сделать что-то необычное, как вы храните его ради того, чтобы делать что-то необычное, но это просто звучит как головная боль для хранения/запроса. – Siyual
Переходите к нормальной модели данных :-) Эти трюки в 99% случаев не нужны. –
Я ценю тот факт, что вы пытаетесь играть с битовыми флагами, но можете ли вы хотя бы опубликовать некоторые данные образца? Как выглядят эти таблицы и какие результаты вы получаете? – WillardSolutions