Старый 21.09.2016, 20:45   #21
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

глупая мысль. сделай там \n перед юнионом что ли. Ну или кавычек понапихай. Ему реально не нравится на том месте union, он что-то другое хочет
__________________
Jokester: Ок, с тобой проще согласиться чем переубедить. :)
HeartLESS вне форума   Ответить с цитированием
Старый 21.09.2016, 20:46   #22
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

Даже не знаю, сфинкс вроде как поддерживает UNION и подзапросы в SELECT, что ему не нравится не понимаю
Цитата:
18 UNION ALL SELECT 1000 as `id_user`, 1 as `is_online` LIMIT 0,2/*
Цитата:
18 UNION ALL SELECT 1000, 1 LIMIT 0,2/*
Цитата:
18 UNION ALL SELECT NULL, NULL LIMIT 0,2/*
profexer вне форума   Ответить с цитированием
Старый 21.09.2016, 20:55   #23
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

чего вы гадаете, есть же официальная документация http://sphinxsearch.com/docs/latest/sphinxql-select.html , union я там не вижу но зато есть например:
http://sphinxsearch.com/docs/latest/...i-queries.html
tex вне форума   Ответить с цитированием
Старый 21.09.2016, 21:08   #24
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

Документация есть, ее читали, там правда ничего нет про UNION, но он есть в примере по sql_query_killlist и в сети есть код с его использованием.
На счет мультизапросов - для них нужно чтоб функия запроса его поддерживала и при выводе результатов был перебор по каждому из запросов.
profexer вне форума   Ответить с цитированием
Старый 21.09.2016, 22:09   #25
YuNi|[c
 
Аватар для YuNi|[c
 
Регистрация: 03.01.2011
Сообщений: 86
Репутация: 0
По умолчанию

profexer пробовал выше 3 варианта
Код:
Database Exception.
SQLSTATE[42000]: Syntax error or access violation: 1064 sphinxql: syntax error, unexpected IDENT, expecting $end near 'UNION ALL SELECT NULL, NULL LIMIT 0,2/* AND age <= 90 AND id_partner != 3 ORDER BY rand() LIMIT 100000 OPTION max_matches = 100000;'
YuNi|[c вне форума   Ответить с цитированием
Старый 21.09.2016, 22:20   #26
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

вот и пишет в ошибке что принято что-то непонятное заместо окончания:
unexpected IDENT, expecting $end

нет там UNION еще раз говорю - вот из исходников что там есть:
Цитата:
/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
TOK_IDENT = 258,
TOK_ATIDENT = 259,
TOK_CONST_INT = 260,
TOK_CONST_FLOAT = 261,
TOK_CONST_MVA = 262,
TOK_QUOTED_STRING = 263,
TOK_USERVAR = 264,
TOK_SYSVAR = 265,
TOK_CONST_STRINGS = 266,
TOK_BAD_NUMERIC = 267,
TOK_SUBKEY = 268,
TOK_DOT_NUMBER = 269,
TOK_ADD = 270,
TOK_AGENT = 271,
TOK_ALTER = 272,
TOK_AS = 273,
TOK_ASC = 274,
TOK_ATTACH = 275,
TOK_ATTRIBUTES = 276,
TOK_AVG = 277,
TOK_BEGIN = 278,
TOK_BETWEEN = 279,
TOK_BIGINT = 280,
TOK_BOOL = 281,
TOK_BY = 282,
TOK_CALL = 283,
TOK_CHARACTER = 284,
TOK_CHUNK = 285,
TOK_COLLATION = 286,
TOK_COLUMN = 287,
TOK_COMMIT = 288,
TOK_COMMITTED = 289,
TOK_COUNT = 290,
TOK_CREATE = 291,
TOK_DATABASES = 292,
TOK_DELETE = 293,
TOK_DESC = 294,
TOK_DESCRIBE = 295,
TOK_DISTINCT = 296,
TOK_DIV = 297,
TOK_DOUBLE = 298,
TOK_DROP = 299,
TOK_FACET = 300,
TOK_FALSE = 301,
TOK_FLOAT = 302,
TOK_FLUSH = 303,
TOK_FOR = 304,
TOK_FROM = 305,
TOK_FUNCTION = 306,
TOK_GLOBAL = 307,
TOK_GROUP = 308,
TOK_GROUPBY = 309,
TOK_GROUP_CONCAT = 310,
TOK_HAVING = 311,
TOK_ID = 312,
TOK_IN = 313,
TOK_INDEX = 314,
TOK_INSERT = 315,
TOK_INT = 316,
TOK_INTEGER = 317,
TOK_INTO = 318,
TOK_IS = 319,
TOK_ISOLATION = 320,
TOK_JSON = 321,
TOK_LEVEL = 322,
TOK_LIKE = 323,
TOK_LIMIT = 324,
TOK_MATCH = 325,
TOK_MAX = 326,
TOK_META = 327,
TOK_MIN = 328,
TOK_MOD = 329,
TOK_MULTI = 330,
TOK_MULTI64 = 331,
TOK_NAMES = 332,
TOK_NULL = 333,
TOK_OPTION = 334,
TOK_ORDER = 335,
TOK_OPTIMIZE = 336,
TOK_PLAN = 337,
TOK_PLUGIN = 338,
TOK_PLUGINS = 339,
TOK_PROFILE = 340,
TOK_RAND = 341,
TOK_RAMCHUNK = 342,
TOK_READ = 343,
TOK_RECONFIGURE = 344,
TOK_REPEATABLE = 345,
TOK_REPLACE = 346,
TOK_REMAP = 347,
TOK_RETURNS = 348,
TOK_ROLLBACK = 349,
TOK_RTINDEX = 350,
TOK_SELECT = 351,
TOK_SERIALIZABLE = 352,
TOK_SET = 353,
TOK_SETTINGS = 354,
TOK_SESSION = 355,
TOK_SHOW = 356,
TOK_SONAME = 357,
TOK_START = 358,
TOK_STATUS = 359,
TOK_STRING = 360,
TOK_SUM = 361,
TOK_TABLE = 362,
TOK_TABLES = 363,
TOK_THREADS = 364,
TOK_TO = 365,
TOK_TRANSACTION = 366,
TOK_TRUE = 367,
TOK_TRUNCATE = 368,
TOK_TYPE = 369,
TOK_UNCOMMITTED = 370,
TOK_UPDATE = 371,
TOK_VALUES = 372,
TOK_VARIABLES = 373,
TOK_WARNINGS = 374,
TOK_WEIGHT = 375,
TOK_WHERE = 376,
TOK_WITHIN = 377,
TOK_OR = 378,
TOK_AND = 379,
TOK_NE = 380,
TOK_LTE = 381,
TOK_GTE = 382,
TOK_NOT = 383,
TOK_NEG = 384
};
версия 2.2.11
tex вне форума   Ответить с цитированием
Старый 21.09.2016, 22:35   #27
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

Тогда остается только попытать счастье с мультизапросами:
Цитата:
18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online;/*
profexer вне форума   Ответить с цитированием
Старый 21.09.2016, 22:36   #28
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

Цитата:
Сообщение от profexer Посмотреть сообщение
Документация есть, ее читали, там правда ничего нет про UNION, но он есть в примере по sql_query_killlist
как работает Sphinx - берет данные из обычной дб, индексирует и позволяет уже посредством своего sql делать поиск по ним.
то что ты показал - это как раз относиться к моменту выборки данных из обычной дб. это sql в mysql а не Sphinx.
tex вне форума   Ответить с цитированием
Старый 21.09.2016, 22:42   #29
YuNi|[c
 
Аватар для YuNi|[c
 
Регистрация: 03.01.2011
Сообщений: 86
Репутация: 0
По умолчанию

Код:
18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online;/*
Цитата:
Database Exception.
SQLSTATE[42000]: Syntax error or access violation: 1064 sphinxql: syntax error, unexpected ';', expecting FROM or ',' near ';/* AND age <= 90 AND id_partner != 3 ORDER BY rand() LIMIT 100000 OPTION max_matches = 100000;'
The SQL being executed was: SELECT `id_user`, is_online FROM profiles_female WHERE can_receive_gift = 1 AND id_mirror = 20 AND is_blocked = 0 AND age >= 18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online;/* AND age <= 90 AND id_partner != 3 ORDER BY rand() LIMIT 100000 OPTION max_matches = 100000;
Код:
18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online;%00
Цитата:
Database Exception.
SQLSTATE[42000]: Syntax error or access violation: 1064 sphinxql: syntax error, unexpected ';', expecting FROM or ',' near ';'
The SQL being executed was: SELECT `id_user`, is_online FROM profiles_female WHERE can_receive_gift = 1 AND id_mirror = 20 AND is_blocked = 0 AND age >= 18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online; AND age <= 90 AND id_partner != 3 ORDER BY rand() LIMIT 100000 OPTION max_matches = 100000;
YuNi|[c вне форума   Ответить с цитированием
Старый 21.09.2016, 23:42   #30
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

Код:
18 LIMIT 0,1; SELECT 2 as id_user, 1 as is_online FROM profiles_female LIMIT 1;/*
profexer вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot