powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите - поиск по русским буквам.
9 сообщений из 9, страница 1 из 1
Подскажите - поиск по русским буквам.
    #38906289
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня! С MySQL не очень знаком, поэтому удивлен проблемой, с которой столкнулся, очевидно из-за кодировки.

like '%Человек%' не находит, а like '%еловек%' находит правильно. Но тоже только после того, как применил ф-цию lower().

Таблицы созданы в utf8_general_ci

Наверняка же какие-то варианты конвертации существуют - подскажите, пож!
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909131
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Братья по разуму! Неужели не поможете?
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909144
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выпрямляй руки...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
mysql> CREATE TABLE test (txt TEXT CHARACTER SET utf8 COLLATE utf8_general_ci);
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO test
    -> SELECT 'Человек - это звучит гордо' UNION ALL
    -> SELECT 'Человек, рюмку водки!' UNION ALL
    -> SELECT 'Баранкин, будь человеком.' UNION ALL
    -> SELECT 'Может, хватит?';
Query OK, 4 rows affected (0.05 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM test;
+-------------------------------------------------+
| txt                                             |
+-------------------------------------------------+
| Человек - это звучит гордо                      |
| Человек, рюмку водки!                           |
| Баранкин, будь человеком.                       |
| Может, хватит?                                  |
+-------------------------------------------------+
4 rows in set (0.00 sec)

mysql> SELECT * FROM test WHERE txt like '%Человек%';
+-------------------------------------------------+
| txt                                             |
+-------------------------------------------------+
| Человек - это звучит гордо                      |
| Человек, рюмку водки!                           |
| Баранкин, будь человеком.                       |
+-------------------------------------------------+
3 rows in set (0.05 sec)
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909145
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAM,

Брат по разуму, что я не так делаю?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Database changed
mysql> DROP TABLE IF EXISTS `fam`;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE `fam` (
    ->   `id` int(11) NOT NULL AUTO_INCREMENT,
    ->   `name` varchar(40) DEFAULT NULL,
    ->   PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO `fam` (`name`) VALUES ('Человек'), ('Обизяна'), ('Мухтар');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT `id`, `name`
    -> FROM `fam`
    -> WHERE `name` LIKE '%Человек%'
    -> UNION ALL
    -> SELECT `id`, `name`
    -> FROM `fam`
    -> WHERE `name` LIKE '%еловек%';
+----+----------------+
| id | name           |
+----+----------------+
|  1 | Человек        |
|  1 | Человек        |
+----+----------------+
2 rows in set (0.00 sec)
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909263
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikkiMouse,

а что тут не так? Каждый из селектов выводит по одной записи - ровно столько, сколько и должен...
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909290
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Спасибо за участие!
Тривиальный пример ничего не поясняет. Такая модель и у меня работает.

*******
Но вопрос в другом - как привести к единой кодировке текст запроса в like?
*********

Я поэтому и не стал описывать пример простенький, а жду ответ тех, кто сталкивался. У меня опыт почти 30 лет программирования и ваш пример мне понятен.
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909304
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAMНо вопрос в другом - как привести к единой кодировке текст запроса в like?Вопрос скорее в том, что именно хранится в записях, которые
FAMlike '%Человек%' не находит, а like '%еловек%' находит правильно. Но тоже только после того, как применил ф-цию lower().Может, покажете пару-тройку таких?
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38909316
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAMкак привести к единой кодировке текст запроса в like?
http://dev.mysql.com/doc/refman/5.6/en/cast-functions.html#function_convert
...
Рейтинг: 0 / 0
Подскажите - поиск по русским буквам.
    #38910402
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

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


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