|
UDF для MySQl на linux
|
|||
---|---|---|---|
#18+
Сделал в 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. Подскажите, пожалуста, что я не так делаю? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2003, 14:22 |
|
|
start [/forum/topic.php?desktop=1&fid=47&tid=1855740]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 467ms |
0 / 0 |