Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
UDF (Uncle) 07/10/2003 - 13:35:16



From: Uncle - 07/10/2003 - 13:35:16
Subject:UDF
-----------------
Сделал в своей UDF простую функцию которая в первом аргументе считает сколько слов из второго аргумента входят как подстроки.
Вот сама функция:
longlong wordcount(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
const char *word=args->args[0];
if (!word)
{
*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;
};

Если вызываю функицию в запросе как
select wordcount("str1 str2 str3", "str2 str1");
Все нормально трабатывает.
Но когда пытаюсь сделать что-то типа:
select name, wordcount(name, "str1 str2") from table1;
То выдяются только значения 1 и 0. Хотя точно известно, что там есть строки где должно выдаваться и значения > 1.

Подскажите пожалучста - что я неправильно делаю?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
10985



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |