|
Тема
|
Задачка, закачка за BINARY
|
|
Автор |
salle (един такъв) |
Публикувано | 25.03.04 18:19 |
|
Или по-точно за всички тези от вас които масово препоръчват да се използва BINARY като пенкилер за проблемите с кирилицата:
CREATE TEMPORARY TABLE bin (a CHAR(8) BINARY);
INSERT INTO bin VALUES('абв');
Какво ще върне като резултат
SELECT a, UPPER(a) FROM bin;
в MySQL 4.1 и защо?
Да не кажете после, че не съм ви предупредил ...
Отдавна казвам, че BINARY не е решение
| |
Тема
|
Re: Задачка, закачка за BINARY
[re: salle]
|
|
Автор |
voyager (прасе в космоса) |
Публикувано | 26.03.04 11:53 |
|
Първи опит:
- table 'bin' doesn't exist
Втори опит:
- table 'bin' already exist
Поотделно заявките:
- table 'bin' doesn't exist
Пробвах таблицата да не е TEMPORARY
- не вкарва нищо при инсерта ![](http://i.dirbg.com/clubs/icons/shocked.gif) ![](http://i.dirbg.com/clubs/icons/shocked.gif)
MySQL 4.1 Alpha ![](http://i.dirbg.com/clubs/icons/shocked.gif) ![](http://i.dirbg.com/clubs/icons/shocked.gif)
Защо? ![](http://i.dirbg.com/clubs/icons/blush.gif) ![](http://i.dirbg.com/clubs/icons/shocked.gif) ![](http://i.dirbg.com/clubs/icons/blush.gif) ![](http://i.dirbg.com/clubs/icons/shocked.gif) ![](http://i.dirbg.com/clubs/icons/blush.gif) ![](http://i.dirbg.com/clubs/icons/shocked.gif)
| |
Тема
|
Re: Задачка, закачка за BINARY
[re: voyager]
|
|
Автор |
salle (един такъв) |
Публикувано | 26.03.04 13:35 |
|
Пробвай с друга таблица или със 'abc' вместо 'абв'
Въпросът е какво се получава при
SELECT UPPER(<колонка дефинирана като BINARY>)
| |
Тема
|
Връща абсолютно правилен
[re: salle]
|
|
Автор |
bira_more (бира) |
Публикувано | 26.03.04 14:51 |
|
резултат :))))
Bеer? Moooorrre?
| |
|
и темпорари таблицата изчезва в небитието.
Конектваш се.
Правиш обикновена таблица - а не темпорари.
Явно това е интересен феатуре - като имаш две таблици - с еднакви имена ама едната е тепорари, инсерта влиза в нея, а селекта търси другата. *
Е аз съм с по древна версия де.3.23.47 (върху Win2000)
Отговорите са ясни - всичко си е както трябва демек
абв|абв
Тоест - UPPER на binary не върви :)
*Забравих да пиша че за пробата използвах MySQLFront 2.2/ client library 3.23.39
Bеer? Moooorrre?Редактирано от bira_more на 26.03.04 15:42.
| |
Тема
|
Re: Връща абсолютно правилен
[re: bira_more]
|
|
Автор |
salle (един такъв) |
Публикувано | 26.03.04 15:55 |
|
Ами работата е там, че има разлика межд 4.0 и 4.1 дори когато изглежда, че резултата е един и същ.
Да не говорим пък, че:
mysql> SELECT a, UPPER(a), UPPER(BINARY 'абв'), VERSION() FROM bin;
+--------+----------+------------------------+------------------+
| a | UPPER(a) | UPPER(BINARY 'абв') | VERSION() |
+--------+----------+------------------------+------------------+
| абв | абв | абв | 4.0.19-debug-log |
+--------+----------+------------------------+------------------+
mysql> SELECT a, UPPER(a), UPPER(BINARY 'абв'), VERSION() FROM bin;
+--------+----------+------------------------+-----------------+
| a | UPPER(a) | UPPER(BINARY 'абв') | VERSION() |
+--------+----------+------------------------+-----------------+
| абв | абв | АБВ | 4.1.2-alpha-log |
+--------+----------+------------------------+-----------------+
| |
Тема
|
От една страна се чудя дали някога въобще
[re: salle]
|
|
Автор |
bira_more (бира) |
Публикувано | 26.03.04 16:10 |
|
ще ми дотрябва DB да изпълнява неща от сорта на UPPER.
От друга се сещам как преди време с минимум математики, ми даде акъл да си извадя резултати с една заявка.
Така де, аз не съм си мислил че ще карам DB да ми връща мин, макс, абс, ама се случи :))))
Bеer? Moooorrre?
| |
Тема
|
Re: От една страна се чудя дали някога въобще
[re: bira_more]
|
|
Автор |
toranaga (деструктор) |
Публикувано | 01.04.04 01:46 |
|
ааа, трябва си
ето пример: имам мейл адреси в една таблица и искам да извадя буквите, които присъстват, като първа буква на адрес. понеже не искам базата да ми изплюе и малки и главни букви, ползвам UPPER(left(email,1)), за да ми изкара всичко с главни ![](http://i.dirbg.com/clubs/icons/wink.gif)
чалнал съм се, не ми вярвайте
| |
|
|
|
|