|
Тема
|
compare 2 string - MySQL
|
|
Автор |
rdx9 (непознат) |
Публикувано | 04.08.05 18:00 |
|
Здравейте !
Базата данни е MySQL 4.1.12 , искам да направя сравнение м/у два стринга на български , единият е записан в базата данни другиат се въвежда от потребителят. При default charset latin1 , резултатите не бяха много добри. Реших да сменя charseta и collation-а на таблиците , в които се пази информацията на български. Ето едната таблица:
CREATE TABLE bg(
name char(50) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci;
Пак пробвах , и изпища за грешка че няма как да сравни cp1251 с latin1.
Тогава направих следното:
mysql_query('SET NAMES cp1251'); и тука вече collation-а започна да не му харесва. Накрая преобразувах заявката така:
$query = "SELECT * FROM bg WHERE name=_latin1 '$target' COLLATE cp1251_bulgarian_ci";
този път нещата тръгнаха , но резултатите бяха ужасяващи. Въбше неработеше. От тук нататъка вече идея нямам какво да правя - предложете вие нещо ...
P.S. Странно е че когато премонеих таблицата на ENGINE=MyISAM DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci; и вкарах вътре информация после под phpMyAdmin-а нищо не се четеше
| |
Тема
|
Re: compare 2 string - MySQL
[re: rdx9]
|
|
Автор |
Sanndo (WebDevPich) |
Публикувано | 04.08.05 21:21 |
|
latin1_swedish_ci
Имах подобем проблем, така си го реших
Успех
| |
Тема
|
Re: compare 2 string - MySQL
[re: Sanndo]
|
|
Автор | rdx9 (Нерегистриран) |
Публикувано | 05.08.05 17:44 |
|
не върши работа при мен ..
| |
Тема
|
Re: compare 2 string - MySQL
[re: rdx9]
|
|
Автор | rdx9 (Нерегистриран) |
Публикувано | 08.08.05 17:05 |
|
Аийде бе хора - предложете нещо
или препоръчайте някоя DB, с която няма да имам проблеми с българският език, може би postgre - някой пробвал ли е ?
| |
|
аз такива проблеми съм нямал.
Ама си ползвам приложения, които ползват libmysql.
С няколко допълнителни мои неща.
RTFM
Има един куп места в които се задават charset.
Зададе ли ги вичките?
По правилния начин?
Bеer? Mоre?
| |
Тема
|
Re: Да беше казал какъв е проблема ..
[re: rdx9]
|
|
Автор |
salle (един такъв) |
Публикувано | 08.08.05 20:38 |
|
"този път нещата тръгнаха , но резултатите бяха ужасяващи. Въбше неработеше. "
Никой не е в състояние да ти помогне при такова "обяснение"
Какво разбираш под "ужасяващи" и "неработеше" само ти си знаеш.
Никой не може да ти чете мислите все пак.
"mysql_query('SET NAMES cp1251'); и тука вече collation-а започна да не му харесва."
Какво означава "не му харесва"?
mysql> CREATE TABLE bg(
-> name char(50) NOT NULL default ''
-> ) ENGINE=MyISAM DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bulgarian_ci;
Query OK, 0 rows affected (0.04 sec)
mysql> SET NAMES cp1251;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO bg VALUES("България");
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM bg WHERE name = "България"\G
*************************** 1. row ***************************
name: България
1 row in set (0.00 sec)
Както виждаш и си работи и му "харесва" и нищо "ужасяващо" няма в резултатите.
Проблемът очевидно е в твоят телевизор. Ама ако продължаваш да твърдиш
- Ми не работи.
а не казваш какво и Господ не може да ти помогне.
| |
|
|
|
|