SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.04.2011 12:37:28

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

выборка символов

День добрый. как можно вычислить введенные символы не на русской раскладке клавиатуры, например имя Иван, может "а" введена на англиском.

Неактивен

 

#2 25.04.2011 13:51:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: выборка символов

Посмотрите такие фукнции работы со строками, как  ASCII и ORD.

Отредактированно deadka (25.04.2011 13:52:38)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 25.04.2011 13:57:52

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

Re: выборка символов

deadka написал:

Посмотрите такие фукнции работы со строками, как  ASCII и ORD.

select * from t1
where
instr(Upper(name||surname||SECONDNAME), 'A')>0 or
instr(Upper(name||surname||SECONDNAME), 'B')>0 or
и так вставил все латинские сиволы, но коректно ли так?

Неактивен

 

#4 25.04.2011 16:03:56

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: выборка символов

В теории корректно, но это же страшно smile!
Думаю, здесь лучше с regexp'ами поиграть. вот такой

select * from t1 where name regexp '[a-zA-Z]';

вернет те записи, в которых присутствует хотя бы одна английская буква (любого регистра).

Наверное, Вам вот такой подойдёт?

select * from t1 where (name regexp '[a-zA-Z]+') or (surname regexp '[a-zA-Z]') or (SECONDNAME regexp '[a-zA-Z]');
 

Отредактированно deadka (25.04.2011 16:05:46)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 25.04.2011 16:20:26

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

Re: выборка символов

deadka написал:

В теории корректно, но это же страшно smile!
Думаю, здесь лучше с regexp'ами поиграть. вот такой

select * from t1 where name regexp '[a-zA-Z]';

вернет те записи, в которых присутствует хотя бы одна английская буква (любого регистра).

Наверное, Вам вот такой подойдёт?

select * from t1 where (name regexp '[a-zA-Z]+') or (surname regexp '[a-zA-Z]') or (SECONDNAME regexp '[a-zA-Z]');
 

вопрос на засыпку? есть же некоторые командыы которые не понимает оракл, но мускул понимает. вот у меня на оракле(

Неактивен

 

#6 25.04.2011 16:23:25

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: выборка символов

Почти уверен, что в оракле также есть механизмы для работы с регулярными выражениями и запрос не будет сильно отличаться от приведенного мной. Но тонкости, боюсь, Вам только на оракловом форуме подскажут.

Ну и опять же - посмотрите оракловые функции для работы со строками, может там чего полезное окажется для вашей задачи.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 25.04.2011 16:25:50

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

Re: выборка символов

deadka написал:

Почти уверен, что в оракле также есть механизмы для работы с регулярными выражениями и запрос не будет сильно отличаться от приведенного мной. Но тонкости, боюсь, Вам только на оракловом форуме подскажут.

Ну и опять же - посмотрите оракловые функции для работы со строками, может там чего полезное окажется для вашей задачи.

большое спасибо, наверно придется моим первым вариантом)) хоть что то дает))

Неактивен

 

#8 26.04.2011 07:31:50

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

Re: выборка символов

mariec написал:

deadka написал:

В теории корректно, но это же страшно smile!
Думаю, здесь лучше с regexp'ами поиграть. вот такой

select * from t1 where name regexp '[a-zA-Z]';

вернет те записи, в которых присутствует хотя бы одна английская буква (любого регистра).

Наверное, Вам вот такой подойдёт?

select * from t1 where (name regexp '[a-zA-Z]+') or (surname regexp '[a-zA-Z]') or (SECONDNAME regexp '[a-zA-Z]');
 

вопрос на засыпку? есть же некоторые командыы которые не понимает оракл, но мускул понимает. вот у меня на оракле(

вроде разобрался, в оракле стоит оператор "REGEXP_LIKE", есть теперь еще одно услови - это сюда дописать символы типо скобки, ковычки и тд. с алфавитом понятно, а вто как символытерь вписать?

Неактивен

 

#9 26.04.2011 08:13:28

mariec
Участник
Зарегистрирован: 19.04.2011
Сообщений: 8

Re: выборка символов

mariec написал:

mariec написал:

deadka написал:

В теории корректно, но это же страшно smile!
Думаю, здесь лучше с regexp'ами поиграть. вот такой

select * from t1 where name regexp '[a-zA-Z]';

вернет те записи, в которых присутствует хотя бы одна английская буква (любого регистра).

Наверное, Вам вот такой подойдёт?

select * from t1 where (name regexp '[a-zA-Z]+') or (surname regexp '[a-zA-Z]') or (SECONDNAME regexp '[a-zA-Z]');
 

вопрос на засыпку? есть же некоторые командыы которые не понимает оракл, но мускул понимает. вот у меня на оракле(

вроде разобрался, в оракле стоит оператор "REGEXP_LIKE", есть теперь еще одно услови - это сюда дописать символы типо скобки, ковычки и тд. с алфавитом понятно, а вто как символытерь вписать?

спасибо, разобрался. в апосталах вместо букв указал все символы smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson