mysql_real_escape_string / Говнокод #25360 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
CREATE TABLE `test` (
    `id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
     `parent` INT(10) unsigned NOT NULL DEFAULT '0',
      `name` VARCHAR(50),
     PRIMARY KEY (`id`)
    ) ENGINE=InnoDB;
INSERT INTO test (id, parent, name) values (1, 0, '10'),(2, 1, '21'),(4, 3, '43'),(5, 0, '50'),(6, 5, '65'),(7, 6, '76'),(8, 7, '87'),(9, 8, '98');
SELECT t1.name AS lev1, t2.name as lev2, t3.name as lev3, t4.name as lev4, t5.name as lev5, t6.name as lev6, t7.name as lev7 FROM `test` AS t1 LEFT JOIN test AS t2 ON t2.`parent` = t1.`id`  LEFT JOIN test AS t3 ON t3.`parent` = t2.`id`  LEFT JOIN test AS t4 ON t4.`parent` = t3.`id` LEFT JOIN test AS t5 ON t5.`parent` = t4.`id` LEFT JOIN test AS t6 ON t6.`parent` = t5.`id` LEFT JOIN test AS t7 ON t7.`parent` = t6.`id`;

взять последнего парента с седьмого колена!
я просто похлопаю :)

Запостил: websbkinfo websbkinfo, (Updated )

Комментарии (21) RSS

  • Дереьвя надо или хранить в Left+Right (Nested Set Model) или выводить через Common Table Extensions

    остальное это пыхомускулевое доширакство
    Ответить
  • Бля, только щас узнал что в инсерт можно несколько записей указать... Я почти джва года писал на каждую запись отдельный инсерт...

    Какой багор (((
    Ответить
    • На всякий случай напоминаю, что можно ещё селектнуть кусок одной таблицы и вставить в другую одним запросом.
      Ответить
        • Пишут, что будет плохо:
          http://www.mysql.ru/docs/man/INSERT_SELECT.html
          Целевая таблица команды INSERT не должна появляться в утверждении FROM части SELECT данного запроса, поскольку в ANSI SQL запрещено производить выборку из той же таблицы, в которую производится вставка. (Проблема заключается в том, что операция SELECT, возможно, найдет записи, которые были внесены ранее в течение того же самого прогона команды. При использовании команд, внутри которых содержатся многоступенчатые выборки, можно легко попасть в очень запутанную ситуацию!)
          Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8