Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как хранить все значения boolean в одном поле? / 11 сообщений из 11, страница 1 из 1
02.05.2020, 12:44
    #39953687
boltachev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как хранить все значения boolean в одном поле?
Есть 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
02.05.2020, 13:07
    #39953693
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как хранить все значения boolean в одном поле?
третий аргумент еще, наверное 1 (единица)
Код: sql
1.
SELECT MID(flag,5,???) FROM flags;


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


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


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

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

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


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


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

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

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

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


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