Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UDF для MySQl на linux / 1 сообщений из 1, страница 1 из 1
07.10.2003, 14:22
    #32286308
Uncle Andy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UDF для MySQl на linux
Сделал в UDF свою функцию для подсчета количества слов из ключевой последовательности входящих в основную строку. Получилось вот так:
longlong wordcount(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
const char *word=args->args[0];
if (!word) // Null argument
{
*is_null=1;
return 0;
};

char *mainstr = args->args[0];
char *substrs = args->args[1];
char *c;
char *ss;
int count = 0;

c = strtok(substrs, " ,();:-+|");
while (c != NULL)
{
ss = strstr(mainstr, c);
if (ss != NULL)
count++;
c = strtok(NULL, " ,();:-+|");
};

return count;
};

Все скомпилилось, к MySQL подключилось.

Пытаюсь вазвать типа:
select wordcount("str1 str2 str3", "str2 str1");
Все выдается отлично.

Но если я делаю вызов из sql типа:
select text, wordcount(text, "str2 str1 str3") from table1;
то выдаются значения только 0 и 1, хотя по содержимому text должны быть значения и 2 и 3.

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


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