powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как хранить все значения boolean в одном поле?
11 сообщений из 11, страница 1 из 1
как хранить все значения boolean в одном поле?
    #39953687
boltachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 30 флажков.

Можно сделать, например, так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE flags (
  `cod` INT,
  `flags` VARCHAR(30) NOT NULL DEFAULT "000000000000000000000000000000"
);

INSERT INTO flags (flags) VALUES("000010000000000000000000000000");

SELECT MID(flag,5) FROM flags;



А как правильнее?
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953693
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
третий аргумент еще, наверное 1 (единица)
Код: sql
1.
SELECT MID(flag,5,???) FROM flags;


а само использование - без индекса. Типа LIKE "%строка%" - зависит от объема и задачи
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953695
boltachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
третий аргумент еще, наверное 1 (единица)
Код: sql
1.
SELECT MID(flag,5,???) FROM flags;


а само использование - без индекса. Типа LIKE "%строка%" - зависит от объема и задачи


Код: sql
1.
SELECT MID(flag,5,1) FROM flags;
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953697
boltachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT * FROM flags WHERE MID(flag,5,1)=1;
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953701
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boltachev
А как правильнее?

Правильнее таки не нарушать первую НФ. Ибо наказание за это - всегда геморрой.

Совсем правильно - отношение M:N.
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953754
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boltachev,
ну еще можно использовать целые числа
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953768
boltachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab
boltachev,
ну еще можно использовать целые числа


а как?
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953778
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boltachev
mini.weblab
boltachev,
ну еще можно использовать целые числа


а как?
Битовые функции MySQL. Хранить будешь десятичные числа BIGINT, а потом делать проверку битов числа по маске. "Я так думаю" (с).
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953793
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boltachev

А как правильнее?
Есть тип данных SET.
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953808
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Есть тип данных SET.
Так это тот же BIGINT, вид сбоку. Т.е. топик-стартеру все равно придется биты выдергивать из числового значения поля SET, которое де-факто приводится к целому числу. Больше мороки, только если ему не надо именовать текстом свои флаги, что может быть нагляднее, чем 1/0.
...
Рейтинг: 0 / 0
как хранить все значения boolean в одном поле?
    #39953810
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluck99
Битовые функции MySQL. Хранить будешь десятичные числа BIGINT, а потом делать проверку битов числа по маске. "Я так думаю" (с).

должно хватить INT, т.к.
2^29 + 2^28 + ... + 2^0 = 2^30 - 1 = 1073741823

это при условии, что автору нужны отдельные комбинации из всех 30 флагов
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как хранить все значения boolean в одном поле?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]