powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из таблицы только тех строк, где кирилица
23 сообщений из 23, страница 1 из 1
Выбор из таблицы только тех строк, где кирилица
    #38733150
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
SELECT * FROM `ls` where `s` REGEXP '[а-яё\s\-]+'


Вот такой запрос составил, но он не различает латинскую и кирилическую «а» и другие одинаковые буквы.

Помогите с запросом, чтобы выбрать только строки с кирилицей..
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733151
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем точно не знаю почему, но захватывает и некоторые слова на латинице.
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733163
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Collation?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733196
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733202
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как запрос составить-то?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733231
Фотография barry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejk,
таблица в какой Collation?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733232
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, теперь понятно, что нужно) Вот дампик:
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733235
Stupid_BOT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejk,
Код: sql
1.
where s regexp '^[а-яё[:blank:]-]+$'



ЗЫ: если достаточное условие "не содержит латинницу", то можно
Код: sql
1.
where s not regexp '[a-z]'
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733248
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо, всё оказалось очень просто, а я тупил) Вроде всё получается, пробую.
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733342
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появился повод продолжить тему немного с другим вопросом.
Кто может намекнуть, что за хрень может быть такая?
Если выбираю строки с кирилицей и строки с латиницей по отдельности и складываю их количество, то получаю на 5 строк больше, чем их всего, а если выбираю строки, где нет латиницы и где нет кирилицы по отдельности, то их число меньше на 5 строк, чем строк всего.
Мистика…
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733785
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejk, а у вас в какой кодировке база?

таблица кодировок

например, посмотрите кирилица в utf-8 представляется очень рваным диапазоном
Ё d0 81
А d0 90 - п d0 bf
р d1 80- я d1 8f
ё d1 91
т.е. для поиска в UTF-8 диапазон должен быть Ё,А-п,р-я,ё
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733935
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejkЕсли выбираю строки с кирилицей и строки с латиницей по отдельности и складываю их количество, то получаю на 5 строк больше, чем их всего, а если выбираю строки, где нет латиницы и где нет кирилицы по отдельности, то их число меньше на 5 строк, чем строк всего.ХШ говорит, что у вас в таблице:
N строк только с латиницей
M строк только с кириллицей
5 строк с тем и другим
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733938
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)т.е. для поиска в UTF-8 диапазон должен быть Ё,А-п,р-я,ёНет. Как раз для этого (для того, чтобы не завязываться на бинарный порядок) и придумали collation.
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38733977
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirkealon(Ruslan)т.е. для поиска в UTF-8 диапазон должен быть Ё,А-п,р-я,ёНет. Как раз для этого (для того, чтобы не завязываться на бинарный порядок) и придумали collation.
ну так то да, вот только создатели MySQL и юникода это кажется не совсем учли

[а-яё] - иначе таких глупостей бы наверное не было
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38734345
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база в UTF-8, проверяем

Код: plsql
1.
2.
select * from ls
where s regexp '^[ЁА-пр-яё[:blank:]-]+$'



20:14:05 select * from ls where s regexp '^[ЁА-пр-яё[:blank:]-]+$' LIMIT 0, 1000 15 row(s) returned 0.001 sec / 0.000 sec
Код: plsql
1.
2.
select * from ls
where s regexp '^[a-z[:blank:]-]+$'


20:14:52 select * from ls where s regexp '^[a-z[:blank:]-]+$' LIMIT 0, 1000 18 row(s) returned 0.001 sec / 0.000 sec

Код: plsql
1.
2.
select * from ls
where s regexp '^[а-яё[:blank:]-]+$'


20:20:36 select * from ls where s regexp '^[а-яё[:blank:]-]+$' LIMIT 0, 1000 3 row(s) returned 0.002 sec / 0.000 sec

Код: plsql
1.
2.
select * from ls
where s regexp '^[А-ЯЁа-яё[:blank:]-]+$'


20:22:04 select * from ls where s regexp '^[А-ЯЁа-яё[:blank:]-]+$' LIMIT 0, 1000 3 row(s) returned 0.010 sec / 0.001 sec
Although automatic conversion is not in the SQL standard, the SQL standard document does say that every character set is (in terms of supported characters) a “subset” of Unicode. Because it is a well-known principle that “what applies to a superset can apply to a subset,” we believe that a collation for Unicode can apply for comparisons with non-Unicode strings.

10.1.7.5 Collation of Expressions
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38734393
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)andrejk, а у вас в какой кодировке база?

таблица кодировок

например, посмотрите кирилица в utf-8 представляется очень рваным диапазоном
Ё d0 81
А d0 90 - п d0 bf
р d1 80- я d1 8f
ё d1 91
т.е. для поиска в UTF-8 диапазон должен быть Ё,А-п,р-я,ё
utf-8
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38734409
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejkutf-8
смотрите выше, это по вашей базе тестовой запросы
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38734463
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати о птичках, как найти записи с
нежелаемыми буковками:

Код: sql
1.
2.
3.
select * 
from tableA
where text_field != CONVERT(test_field USUNG cp1251)
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38735304
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут вот какое дело оказалось. Обнаружили такие невидимые символы в словах (они между буквами «а» и «б» по одному в строке после таба):

а



б

Кто знает, как узнать, что это за символы, чтобы добавить их в регуляные выражения для удаления?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38735305
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
форум табы удалил
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38735389
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrejkкак узнать, что это за символы HEX(str)
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38735530
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то у меня не получается:
Код: sql
1.
SELECT `s` FROM `ts` WHERE regexp '^[HEX(​)]+$'


В скобках HEX невидимый символ. Выдаёт ошибку.
Как найти в базе все слова с этим символом?
...
Рейтинг: 0 / 0
Выбор из таблицы только тех строк, где кирилица
    #38735531
Serzh007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, а на форуме он стал видимым…
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из таблицы только тех строк, где кирилица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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