|
|
|
| Всем привет. Решил изменить сравнение столбцов с cp1251_general_ci в utf8_bin. Делал таким образом: вошёл в phpMyAdmin, выбрал все текстовые столбцы и в разделе редактирования столбцов выбрал сравнение utf8_bin. После этого сделал выборку всех строк. Теперь данные отображаются примерно так: [BLOB - 333 Байт]. Как я понял, MySQL не выполнил конвертирование текста, либо выполнил его некорректно. Подскажите, как правильно сменить сравнение столбцов?
В phpBB3 столбцы имеют тип utf8_bin, однако при выборке данные отображаются обычным текстом, а не как [BLOB - 333 Байт]. | |
|
|
|
|
|
|
|
для: AVS
(17.09.2009 в 18:03)
| | тип столбцов какой сейчас? | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2009 в 18:54)
| | Тип TEXT | |
|
|
|
|
|
|
|
для: AVS
(17.09.2009 в 19:12)
| | phpbb3 показывает текст без искажений? | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2009 в 19:16)
| | Да, с таблицами phpbb3 все нормально, без искажений. В таблицах phpBB поля были изначально utf8_bin, а в моих таблицах cp1251_general_ci. Я решил сделать единую авторизацию пользователей (на базе представления из обоих таблиц). Решил перевести сравнение в своей таблице на utf8_bin, перевел и после этого содержимое не отображается, вернее отображается как [BLOB - ... Байт]. Решил проверить содержимое через dbForge Studio for MySQL - вместо текста показывает значок "двоичные данные". Если сделать выборку из таблиц phpBB3 - там текст выводится нормально. | |
|
|
|
|
|
|
|
для: AVS
(17.09.2009 в 20:37)
| | Ну так двоичные же по сути-то...
Есть еще вроде utf8_unicode_ci , чем оно не? Или нет? | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2009 в 23:46)
| | Попробую перевести на utf8_unicode_ci | |
|
|
|
|
|
|
|
для: Trianon
(17.09.2009 в 23:46)
| | Есть какие-то преимущества хранения текста как bin? Как ведут себя при сравнении ci, cs и bin (найти ответ на этот вопрос не смог)? | |
|
|
|
|
|
|
|
для: AVS
(18.09.2009 в 14:39)
| | При сравнении bin, сравниваются коды символов.
При ci сравниваются сами символы с учётом языка и без учёта регистра.
cs — тоже самое что ci, но с учётом регистра.
Пара примеров:
mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT "Ö" COLLATE utf8_bin = "O" COLLATE utf8_bin;
+---------------------------------------------+
| "O" COLLATE utf8_bin = "O" COLLATE utf8_bin |
+---------------------------------------------+
| 1 |
+---------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT "Ö" COLLATE utf8_general_ci = "o" COLLATE utf8_general_ci;
+-----------------------------------------------------------+
| "O" COLLATE utf8_general_ci = "o" COLLATE utf8_general_ci |
+-----------------------------------------------------------+
| 1 |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT "Ö" COLLATE utf8_general_cs = "o" COLLATE utf8_general_cs;
ERROR 1273 (HY000): Unknown collation: 'utf8_general_cs'
# на моём локальном сервере не установлена utf8_general_cs, поэтому unknown collation
# по идее должно вернуть 1
mysql>
|
| |
|
|
|
|
 1.1 Кб |
|
|
для: Саня
(11.02.2010 в 22:55)
| | Форум похерил текст запроса. Вместо Ö там было ----> | |
|
|
|
|
 332 байт |
|
|
для: Саня
(11.02.2010 в 22:55)
| | Мда. Стандартная виндовая консоль тоже похерила запрос.
Во вложении скрипт с правильными примерами.
> Есть какие-то преимущества хранения текста как bin?
Теоретически, сравнения в bin быстрее. | |
|
|
|
|
|
|
|
для: Саня
(11.02.2010 в 23:01)
| | сообщению полгода. можно расслабиться :) | |
|
|
|
|
|
|
|
для: Trianon
(11.02.2010 в 23:11)
| | Чорт.
Тем не менее, многие не знают чем различаются между собой *_general_ci, *_general_cs и *_bin. Сообщение не пропадёт зря, рано или поздно кто-нибудь найдёт в поиске :) | |
|
|
|
|
|
|
|
для: Саня
(11.02.2010 в 23:15)
| | Это несомненно. | |
|
|
|
|
|
|
|
для: AVS
(17.09.2009 в 20:37)
| | Решил проверить содержимое через dbForge Studio for MySQL - вместо текста показывает значок "двоичные данные". Если сделать выборку из таблиц phpBB3 - там текст выводится нормально.
Обновите версию dbForge Studio for MySQL.
Сейчас доступна 4-я версия.
http://www.devart.com/ru/dbforge/mysql/studio/download.html | |
|
|
|