с колонками
col1 col2 и col3 - они все текстовые(varchar 512)
Нужно поиск где будет искаться соответствие на все колонки, например
OR (CONCAT(col1,col2,col3) = 'XS-S9209489386330921971530021286')
можно как объединить их так и разделить.
сложность в том, что между ними всегда идёт OR.
т.е. в условия получается около 6000-7000 таких строк
OR (CONCAT(col1,col2,col3) = 'одиндватри')
или подобных
OR (col1 = 'один' AND col2='два' AND col='три')
индекс делал такой
CREATE INDEX tmp ON sales (col1, col2,col3);
и потом с ним же выборку делал
SELECT * FROM sales USE INDEX (tmp) WHERE
но всё равно получается очень тяжёлая.
что в таком случае можно сделать?
Ты лучше звездочку в селекте убери. Из описания не совсем ясно в чем проблема и что у тебя не получается
А какой смысл в таком запросе ?
Ни твой индекс, ни способ поиска для нормальных запросов категорически не годится.
получается так SELECT col1, col2,col3 FROM t1 WHERE date BETWEEN ... нужно теперь из того что вышло, найти полное соответствие в t2 у которых есть такие же колонки и в итоге у нас будет t1(count*) / t2(count). Сейчас сделал уже через доп. столбец. Но интерересно как сделать без него можно было
что такое t2 ?
Если ты уже сдела, я буду только рад , что не надо тебе объяснять как сделать не через жопу то, что тебе надо...
но интересно всё же. потому как сейчас доп поля сделал, это не всегда можно сделать
Обсуждают сегодня