Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / функции для работы со строками / 6 сообщений из 6, страница 1 из 1
22.01.2007, 12:23
    #34271748
fanat1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
Есть два поля, н-р: login=name1, email=name1@mail.net
нужно сделать выборку всех логинов, у которых логин равен мылу (без всего что идет за "@")
мне надо взять мыло пользователя, обрезать все что идет после @ и сравнить с логином.
подскажите пожалуйста с помощью каких функций это можно реализовать
...
Рейтинг: 0 / 0
22.01.2007, 12:47
    #34271873
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
Код: plaintext
1.
select ...
where login = substr(email, 1 ,pos(email,'@'))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create function pos(v lvarchar, c lvarchar) returning int

define dummy lvarchar;
define idx int;
define len int;

let idx, len, dummy =   1 , length(c), '';

while dummy != c
   let dummy, idx = substr(v, idx, len), idx +  1 ;
   if dummy is null then return  0 ; end if;
end while;

return idx- 1 ;

end function;
...
Рейтинг: 0 / 0
22.01.2007, 13:02
    #34271951
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
Добавил в фак .
...
Рейтинг: 0 / 0
22.01.2007, 14:13
    #34272242
fanat1k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
решил следующим способом:
SELECT ...
WHERE login = substr(email,1,LENGTH(login))

за функцию спасибо, пригодится в похожей задаче
...
Рейтинг: 0 / 0
22.01.2007, 14:45
    #34272389
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
fanat1kрешил следующим способом:
SELECT ...
WHERE login = substr(email,1,LENGTH(login))

за функцию спасибо, пригодится в похожей задаче
такая конструкция даст неверный результат, если email длиннее login
например,
login=user
email=useremail@com

т.е. такое решение будет работать только в частном случае
...
Рейтинг: 0 / 0
23.01.2007, 08:54
    #34274003
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функции для работы со строками
fanat1kрешил следующим способом:
SELECT ...
WHERE login = substr(email,1,LENGTH(login))

за функцию спасибо, пригодится в похожей задаче
Таня права.
Код: plaintext
WHERE login||'@' = substr(email, 1 ,LENGTH(login)+ 1 )
или проще и намного лучше
Код: plaintext
WHERE email like login||'@%'
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / функции для работы со строками / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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