1. SQL / Говнокод #221

    −352.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    SELECT DISTINCT BE.ID as ID,BE.NAME as NAME,BE.CODE as CODE,BE.IBLOCK_ID as
    IBLOCK_ID,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,B.DETAIL_PAGE_URL as
    DETAIL_PAGE_URL,BE.DETAIL_TEXT as DETAIL_TEXT,BE.DETAIL_TEXT_TYPE as
    DETAIL_TEXT_TYPE,BE.DETAIL_PICTURE as DETAIL_PICTURE,BE.PREVIEW_TEXT as
    PREVIEW_TEXT,BE.PREVIEW_TEXT_TYPE as PREVIEW_TEXT_TYPE,BE.PREVIEW_PICTURE as
    PREVIEW_PICTURE,L.DIR as LANG_DIR,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as
    IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID FROM
    b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE
    ON BE.IBLOCK_ID = B.ID INNER JOIN b_iblock_section_element BSE ON
    BSE.IBLOCK_ELEMENT_ID = BE.ID INNER JOIN b_iblock_section BSubS ON
    BSE.IBLOCK_SECTION_ID = BSubS.ID INNER JOIN b_iblock_section BS ON
    (BSubS.IBLOCK_ID=BS.IBLOCK_ID AND BSubS.LEFT_MARGIN>=BS.LEFT_MARGIN AND
    BSubS.RIGHT_MARGIN<=BS.RIGHT_MARGIN) INNER JOIN b_iblock_property FP1 ON
    FP1.IBLOCK_ID=B.ID AND FP1.CODE='code2' INNER JOIN b_iblock_element_property
    FPV1 ON FP1.ID=FPV1.IBLOCK_PROPERTY_ID AND FPV1.IBLOCK_ELEMENT_ID=BE.ID INNER
    JOIN b_iblock_property FP2 ON FP2.IBLOCK_ID=B.ID AND FP2.CODE='code3' INNER
    JOIN b_iblock_element_property FPV2 ON FP2.ID=FPV2.IBLOCK_PROPERTY_ID AND
    FPV2.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP3 ON
    FP3.IBLOCK_ID=B.ID AND FP3.CODE='code4' INNER JOIN b_iblock_element_property
    FPV3 ON FP3.ID=FPV3.IBLOCK_PROPERTY_ID AND FPV3.IBLOCK_ELEMENT_ID=BE.ID INNER
    JOIN b_iblock_property FP4 ON FP4.IBLOCK_ID=B.ID AND FP4.CODE='code5' INNER
    JOIN b_iblock_element_property FPV4 ON FP4.ID=FPV4.IBLOCK_PROPERTY_ID AND
    FPV4.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP5 ON
    FP5.IBLOCK_ID=B.ID AND FP5.CODE='code7' INNER JOIN b_iblock_element_property
    FPV5 ON FP5.ID=FPV5.IBLOCK_PROPERTY_ID AND FPV5.IBLOCK_ELEMENT_ID=BE.ID INNER
    JOIN b_iblock_property FP6 ON FP6.IBLOCK_ID=B.ID AND FP6.CODE='code9' INNER
    JOIN b_iblock_element_property FPV6 ON FP6.ID=FPV6.IBLOCK_PROPERTY_ID AND
    FPV6.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP7 ON
    FP7.IBLOCK_ID=B.ID AND FP7.CODE='code12' INNER JOIN b_iblock_element_property
    FPV7 ON FP7.ID=FPV7.IBLOCK_PROPERTY_ID AND FPV7.IBLOCK_ELEMENT_ID=BE.ID INNER
    JOIN b_iblock_property FP8 ON FP8.IBLOCK_ID=B.ID AND FP8.CODE='code15' INNER
    JOIN b_iblock_element_property FPV8 ON FP8.ID=FPV8.IBLOCK_PROPERTY_ID AND
    FPV8.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP9 ON
    FP9.IBLOCK_ID=B.ID AND FP9.CODE='code16' INNER JOIN b_iblock_element_property
    FPV9 ON FP9.ID=FPV9.IBLOCK_PROPERTY_ID AND FPV9.IBLOCK_ELEMENT_ID=BE.ID INNER
    JOIN b_iblock_property FP10 ON FP10.IBLOCK_ID=B.ID AND FP10.CODE='code18'
    INNER JOIN b_iblock_element_property FPV10 ON FP10.ID=FPV10.IBLOCK_PROPERTY_ID
    AND FPV10.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP11 ON
    FP11.IBLOCK_ID=B.ID AND FP11.CODE='code23' INNER JOIN
    b_iblock_element_property FPV11 ON FP11.ID=FPV11.IBLOCK_PROPERTY_ID AND
    FPV11.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP12 ON
    FP12.IBLOCK_ID=B.ID AND FP12.CODE='code26' INNER JOIN
    b_iblock_element_property FPV12 ON FP12.ID=FPV12.IBLOCK_PROPERTY_ID AND
    FPV12.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP13 ON
    FP13.IBLOCK_ID=B.ID AND FP13.CODE='code27' INNER JOIN
    b_iblock_element_property FPV13 ON FP13.ID=FPV13.IBLOCK_PROPERTY_ID AND
    FPV13.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP14 ON
    FP14.IBLOCK_ID=B.ID AND FP14.CODE='code32' INNER JOIN
    b_iblock_element_property FPV14 ON FP14.ID=FPV14.IBLOCK_PROPERTY_ID AND
    FPV14.IBLOCK_ELEMENT_ID=BE.ID INNER JOIN b_iblock_property FP15 ON
    FP15.IBLOCK_ID=B.ID AND FP15.CODE='code34' INNER JOIN
    b_iblock_element_property FPV15 ON FP15.ID=FPV15.IBLOCK_PROPERTY_ID AND
    FPV15.IBLOCK_ELEMENT_ID=BE.ID WHERE 1=1 AND B.ID IN (0,42) AND (
    (BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL) ) AND ((((
    (upper(BE.NAME) like upper('%acer7730G%') and BE.NAME is not null) )))) AND
    (((( (upper(FPV1.VALUE) like upper('%Intel%') and FPV1.VALUE is not null) AND
    (upper(FPV1.VALUE) like upper('%Core2Duo%') and FPV1.VALUE is not null) AND
    (upper(FPV1.VALUE) like upper('%T5850%') and FPV1.VALUE is not null) AND
    (upper(FPV1.VALUE) like upper('%2.16GHz%') and FPV1.VALUE is not null) ))))
    AND (((( (upper(FPV2.VALUE) like upper('%4096Mb%') and FPV2.VALUE is not null)
    AND ( (upper(FPV2.VALUE) like upper('%4Gb%') and FPV2.VALUE is not null) ) AND
    (upper(FPV2.VALUE) like upper('%DDRII%') and FPV2.VALUE is not null) )))) AND
    (((( (upper(FPV3.VALUE) like upper('%2x320Gb%') and FPV3.VALUE is not null)
    AND (upper(FPV3.VALUE) like upper('%5400rpm%') and FPV3.VALUE is not null) AND
    (upper(FPV3.VALUE) like upper('%SATA%') and FPV3.VALUE is not null) )))) AND
    (((( (upper(FPV4.VALUE) like upper('%17%') and FPV4.VALUE is not null) ))))
    AND (((( (upper(FPV5.VALUE) like upper('%??%') and FPV5.VALUE is not null)
    )))) AND (((( (upper(FPV6.VALUE) like upper('%64Mb%') and FPV6.VALUE is not
    null) AND ( (upper(FPV6.VALUE) like upper('%??%') and FPV6.VALUE is not null)
    AND (upper(FPV6.VALUE) like upper('%958Mb%') and FPV6.VALUE is not null) )))))
    AND (((( (upper(FPV7.VALUE) like upper('%??%') and FPV7.VALUE is not null)
    )))) AND (((( (upper(FPV8.VALUE) like upper('%Bluetooth%') and FPV8.VALUE is
    not null) AND (upper(FPV8.VALUE) like upper('%V2.0%') and FPV8.VALUE is not
    null) AND (upper(FPV8.VALUE) like upper('%EDR%') and FPV8.VALUE is not null)
    )))) AND (((( (upper(FPV9.VALUE) like upper('%4%') and FPV9.VALUE is not null)
    )))) AND (((( (upper(FPV10.VALUE) like upper('%??%') and FPV10.VALUE is not
    null) )))) AND (((( (upper(FPV11.VALUE) like upper('%??%') and FPV11.VALUE is
    not null) )))) AND (((( (upper(FPV12.VALUE) like upper('%??%') and FPV12.VALUE
    is not null) )))) AND (((( (upper(FPV13.VALUE) like upper('%WebCam%') and
    FPV13.VALUE is not null) AND (upper(FPV13.VALUE) like upper('%1,3Mpx%') and
    FPV13.VALUE is not null) )))) AND (((( (upper(FPV14.VALUE) like
    upper('%?????%') and FPV14.VALUE is not null) )))) AND ((((
    (upper(FPV15.VALUE) like upper('%12%') and FPV15.VALUE is not null) AND
    (upper(FPV15.VALUE) like upper('%???????%') and FPV15.VALUE is not null) ))))
    AND ((((BE.IBLOCK_ID = '42')))) AND (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO
    IS NULL) AND (BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS NULL))) AND
    ((((BE.ACTIVE='Y')))) AND ((BS.ID = 224)) ORDER BY BE.SORT asc , BE.ID desc
    LIMIT 0, 30

    Битрикс (http://dev.1c-bitrix.ru/community/forums/forum6/topic14898/)

    Запостил: guest, 19 Декабря 2008

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

    • страйко:
      вот как можно было написать такое?! О_о
      Ответить
    • Stam:
      оно там так и написано или это постепенно сгенерированный кусок? но все равно страшно ))
      Ответить
    • страйко:
      тоже стало интересно, как это выглядит в пхп коде, но пока не нашёл
      Ответить
    • мЫш:
      это еще цветочки. внутрь лучше не заглядывать... Нервы могут не выдержать.

      Просто его писало куча людей и общая стилистика отсутсвует, скл запросы хоть и собираються, но они поистине громандые. В общем писать под битрикс с жуть!
      Ответить
    • xtk:
      лишний повод против битрих
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • Кококококой полезный сайт!
          Ответить
        • http://isitblockedinrussia.com/?host=www.slideshare.net
          Yes! It appears that www.slideshare.net is currently blocked in Russia.

          Decision 2-3555/2010 made on 2010-06-08 by суд.
          This block affects IPs 108.174.5.138, 185.63.144.10, 185.63.145.10, 185.63.147.19, 91.225.248.138, 2620:0109:c00c:010, 2a05:f500:0010:010, domain www.slideshare.net and URL http://www.slideshare.net/islamhousep/ru-ochishenie-ivospitanie.
          Decision 554/07 made on 2007-08-06 by суд.

          This block affects IPs 108.174.11.74, 108.174.5.138, 185.63.144.10, 185.63.145.10, 185.63.147.19, 91.225.248.138, 2620:0109:c007:010, 2620:0109:c00c:010, 2a05:f500:0010:010, domain www.slideshare.net and URL http://www.slideshare.net/islamhousep/ss-61613051.
          Decision 2а-585/2017 made on 2017-08-21 by суд.

          This block affects IPs 185.63.144.10, 185.63.145.10, 2a05:f500:0010:010, 2a05:f500:0011:010, domain www.slideshare.net and URL https://www.slideshare.net/islamhousep/ss-61613051.
          Decision 2-5704/2014 made on 2014-12-03 by суд.

          This block affects IPs 185.63.144.10, 185.63.145.10, 91.225.248.138, 2620:0109:c007:010, 2620:0109:c00c:010, 2a05:f500:0010:010, domain www.slideshare.net and URL https://www.slideshare.net/islamhousep/the-right-religion-russian.
          IP 185.63.145.10
          Decision 2-3555/2010 made on 2010-06-08 by суд.

          This block affects IP 185.63.145.10, domain www.slideshare.net and URL http://www.slideshare.net/islamhousep/ru-ochishenie-ivospitanie.
          Decision 554/07 made on 2007-08-06 by суд.

          This block affects IP 185.63.145.10, domain www.slideshare.net and URL http://www.slideshare.net/islamhousep/ss-61613051.
          Decision 2а-585/2017 made on 2017-08-21 by суд.

          This block affects IP 185.63.145.10, domain www.slideshare.net and URL https://www.slideshare.net/islamhousep/ss-61613051.
          Decision 2-5704/2014 made on 2014-12-03 by суд.

          This block affects IP 185.63.145.10, domain www.slideshare.net and URL https://www.slideshare.net/islamhousep/the-right-religion-russian.
          Ответить
    • pROCKrammer:
      Угу ) Долой Битрикс) лучшее писать ручками
      Ответить
    • 1:
      Будь я сукель-сервером, — не осилил бы и упал. Хвала и честь майсиклу стойкому. :)
      Ответить
    • buger:
      Очень похоже на авто-сгенерированную выборку
      Ответить
    • o_nix:
      Да, на ORM-генерацию смахивает… Так что чего вы всполошились. :)
      Ответить
    • страйко:
      какой-то херовый ОРМ (если конечно битрикс знает такие слова вообще)

      p.s. хоть орм, хоть не орм - запрос говно
      Ответить
    • anmiles:
      гавнищще достойное говнобитрикса с его говнооптимизацией.
      +1 стопицоттыщмелеонаф раз.
      Ответить
    • NRG:
      да...
      то что битрикс писали уроды это и так известно))
      мне просто приходилось как-то работать с этим гавном, там не может быть и речи об оптимизации, там настолько все запущенно, что когда стартует битрикс(всмысле его ядро) т.е. в скрипте только инклуд хедера и футера, он отрабатывает за 1400мс.
      так что ядумаю комментарии в сторону сука-битрикса излишни
      Ответить
    • Arty:
      Этому запросу место в топе говнокода вместе с битриксом.
      Ответить
      • This is an arilcte that makes you think "never thought of that!"
        Ответить
    • Быдлокодер:
      Ха, слабаки в битриксе, вот у нас запрос был на 3 полных экрана.

      ЗЫ: капча 00330 :)
      Ответить
    • показать все, что скрытоSam:
      Если оно такое дерьмо, почему этот битрикс купили куча крупных клиентов - см. http://www.1c-bitrix.ru/products/cms/projects.php
      В отзывах тоже поют дифирамбы.
      Неужели у всех мозгов нет?
      Ответить
    • страйкер:
      с точки зрения маркетинга это хороший проект.
      с точки зрения программирования — говнокод!

      нас интересует только вторая точка зрения :)
      Ответить
    • Мультикасса:
      Потому что они пошли по пути когда высокопроизводительная железка для клиента стоит дешевле, чем их работа по оптимизации (не все клиенты могут и будут покупать их продукт), а вот богатые могут, но и железку купят такую, как там в требованиях написано (а иначе к 1с какие претензии что все тормозит?), и все будет работать и все будут "довольны" =) А 1с получит свою денюжку за свой "высокопроизводительный" говнокод.
      Ответить
    • Дмитрий:
      Надо отдельную категорию завести "Говнокод Битрикса". ^_^.
      Ответить
    • Господа.
      Претензии только к оформлению?
      Зайдите на www.sqlinform.com и запастите код.
      Коряво, но не так уж и говенно.
      Глупо, конечно, если битрикс намеренно генерирует хреново форматированный код.
      Действительно говнозащита.

      Я минусую.
      Ответить
      • Если мне не изменяет память, то INNER JOIN далеко не самая дешёвая операция, наряду с функциями. Претензии отнюдь не к оформлению.
        Ответить
    • Нормально все.
      Че вы зашумели?
      Просто в таблице содержится информация о множестве параметров, которые расписаны каждый в своей таблице.
      И вдруг, они все понадобились.
      Ответить
      • Вообще-то там описано множество параметров, которые расписаны в одной-двух(!) таблицах.
        Иннер-Джойном одна и та же таблица прихерачивается раз тридцать.
        Дурота.
        Ответить
      • Tip top stuff. I'll excpet more now.
        Ответить
    • FFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUuuu uuuuuuu
      Ответить
    • Код сгенерирован автоматически, это очевидно - посмотрите, там параметры конкретных характеристик, по которым пользователь хочет выполнить фильтрацию списка. То, что одна-две таблицы "при#рачиваются" тридцать раз - это не недостаток, а преимущество битрикса, признак высокого уровня нормализации базы данных, что дает возможность добавлять пользовательские поля и свойства. Ничего не шарите, товарищи :)
      Ответить
    • Вообще в говнобитриксе есть возможность хранить содержимое b_iblock_element и b_iblock_element_property в одной таблице. Для таких случаев.
      Ответить
    • а вы конфигуратор 1с 8 откройте, там во всех отчетах такое
      Ответить

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