Задавайте вопросы, мы ответим
Вы не зашли.
Итак, есть таблица
Отредактированно maxist (12.04.2011 16:43:34)
Неактивен
1. Ужасно неудачная организация хранения данных. Нельзя разбить на два
поля целочисленных? Кажется, все запросы упростятся в разы.
2. Если оставаться со строками, то попробуйте написать осмысленное выра-
жение через LOCATE() / LEFT() — Вас же интересует группировка по левой
части строки.
3. В случае строк — не найдейтесь на то, что оно сможет работать хоть когда-
либо хоть сколь-либо быстро.
4. Да, переменные есть (только один символ @ нужен).
Неактивен
бяка, конечно. Но, пардон: какая задача - такой ответ. Не обессудте.
Неактивен
Что-то мне кажется этот запрос будет сильно весомым... Перебор каждая с каждой. Правда за идеи спасибо. Сейчас еще прочту документацию
Неактивен
2vaspet: моя интуиция меня подвела, я думал, что наоборот
[silentia] root (none) > select benchmark(1000000,@a like '%/%'); +----------------------------------+ | benchmark(1000000,@a like '%/%') | +----------------------------------+ | 0 | +----------------------------------+ 1 row in set (0.51 sec) [silentia] root (none) > select benchmark(1000000,LOCATE("/", @a)); +------------------------------------+ | benchmark(1000000,LOCATE("/", @a)) | +------------------------------------+ | 0 | +------------------------------------+ 1 row in set (0.70 sec)
Неактивен