Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Выбор из базы по enum('yes','no') или enum('1','0') , что лучше и быстрее?
Как лучше и быстрее? Что-то мне в голову стукнуло, что буквы система переводит все равно в цифры и потом делает выбор, а если вместо букв сразу цифры, то возможно будет лучше для самой системы и пусть немного, но все-же быстрее ?
Мелкий
Отправлено: 06 Декабря, 2020 - 21:54:57
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
MariaDB [test]>SELECT*FROM speedlimit WHERE lim >20;
Empty SET(0.000 sec)
MariaDB [test]>SELECT*FROM speedlimit WHERE lim >'20';
+------+------+
| i | lim |
+------+------+
| 2 | 60 |
| 3 | 60 |
+------+------+
2 rows INSET(0.000 sec)
Всё понятно почему работает именно так? Будет ли это понятно вашим коллегам тоже? А тому, кто будет читать код через год?
В общем, не надо в enum числа использовать. Работает оно как задокументировано в мануале, но порой неожиданно для неподготовленного наблюдателя.
----- PostgreSQL DBA
imbecile
Отправлено: 08 Декабря, 2020 - 18:04:21
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июль 2020
Помог: 0 раз(а)
Lolya пишет:
Как лучше
если только два значения, то тип BOOLEAN (или, что то же самое, TINYINT(1)).
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.