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

    −48

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    (
            SELECT IFNULL(
              (
                IFNULL((SELECT SUM(`sale`.`credited`) FROM `sale` WHERE `sale`.`client_id` = `user`.`id` ), 0)
                -
                IFNULL((SELECT SUM(`sale`.`shot`) FROM `sale` WHERE `sale`.`client_id` = `user`.`id` ), 0)
                ), 0)
    )

    Супер подсчет.

    Запостил: govnokoderphp, 09 Мая 2016

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

    • меня больше эти бэк-тики радуют. до сих пор не знаю накой фиг они здесь нужны.

      помню когда то в старые времена народ имена с пробелами/этц в двойные ковычки брал. но нынешнюю моду я не понимаю.
      Ответить
      • > накой фиг
        `У` `мускуля` `парсер` `кейворды` `всегда` `считает` `кейвордами`, `даже` `если` `по` `контексту` `там` `имя` `таблицы` `или` `поля`. `А` `какие` `именно` `кейворды` `есть` `в` `мускуле` - `разбираться` `лень`. `В` `итоге` `весь` `код` `волоснёй` `обрастает`.
        Ответить
        • `Да`, `лучше` `перестраховаться`, `а` `то` `вдруг` `в` `новой` `версии` `MySQL` `какой-нибудь` `из` `твоих` `идентификаторов` `станет` `ключевым` `словом`.

          `А` `что` `касается` `читаемости` `кода`, `можно` `не` `заморачиваться`, `потому` `что` `SQL` `редко` `читают`.
          Ответить
          • да. почитал. порадовало что у всех баз синтакс свой. ANSI-СуКиЛи это мощь.
            Ответить
            • Вот интересная статья:
              http://troels.arvin.dk/db/rdbms/

              При смене СУБД более-менее сложные запросы приходится чуть ли не целиком переписывать.
              Ответить
              • P.S. Сходу проглядываются три раздела для говна:
                1. SQL и даты.
                2. SQL и строки.
                3. SQL и автоинкремент.
                Ответить
                • на самом деле мелочи. геморойные - но мелочи.

                  PL/SQL vs T-SQL vs все остальное - и их собственные фичи и недостатки - это самая большая проблема портабельности.

                  оракл как-то раз чуть ли не официально заявил что их эта ситуация устраивает, потому что пользователи без граблей к конкурентам не могут убежать.
                  Ответить
        • user, кстати, ключевое слово вроде, так что было бы WHERE sale.client_id = `user`.id. Я хз. может для однообразия и стоит пожертвовать.
          Ответить
          • хм. если уж пошла такая пьянка, а не проще ли было бы сделать тогда наоборот: кавычки для ключевых слов? в типичном пяти-этажном запросе, ключевых слов относительно мало.
            Ответить
            • "SELECT" "COUNT(*)", ID, NAME, SUM "FROM" T1 "LEFT" "JOIN" T2 "ON" T1.PARENT = T2.ID "WHERE" ...
              Да ну, жесть же.
              Ответить
              • А почему нельзя как в mssql вообще без кавычек? Особенности работы мозга создателей мускуля?
                Ответить
                • дык можно же
                  просто пыхопользователи mysql за безопасность и эффективность
                  /green
                  Ответить
                  • Это типа что бы можно было писать

                    SELECT `select`
                    FROM `from`
                    WHERE `where` = `join`

                    ?
                    Ответить
                    • всё так
                      Ответить
                      • Сожгите и закапайте
                        Ответить
                        • но... новая версия... сломать всё к ебеням... пыхопе... никогда такого не было, и вот опять...

                          вдруг в мускуле уёбки, которые его пишут, завтра сделают id ключевым словом, обозначающим конкатенацию строк? у всех сломается, а у пыхобляди уже всё работает!

                          опять же оптимизатор мускула (оксюморон) наверняка гораздо лучше работает с ``
                          это для пыхобляди как "" vs ''
                          когда интерпретатор работает так чумачече быстро, что хочется ещё быстрее!
                          Ответить
                          • >> вдруг в мускуле уёбки, которые его пишут, завтра сделают id ключевым словом,

                            Кстати, кто его сейчас пилит? sun microsystem под присмотром Оралука?
                            Ответить
                            • какой из mysql?
                              Их три ветки.
                              mysql
                              mariaDB
                              percona
                              Ответить
                              • ну которая мускуль мускулей
                                Ответить
                                • я как понимаю пилит её все та же sun под руководством Oracle зная, что они делают с Java есть подозрения, мускуль мускулей надо менять
                                  Ответить
                                  • Более того, если жаба не конкурирует с продуктами оралука, то мускуль все таки субд, по идее его выгодно душить и унижать
                                    Ответить
                                    • ну mysql это не конкурент Оракла у них сферы использования разные. Там проблема больше в том, что все кто разрабатывал mysql до оракла стали разрабатывать свои форки.
                                      Ответить
                              • крайне важно знать весь список сортов говна, чтобы случайно не зашквариться

                                Василий, а что, три сорта говна имеют какие-то свои особенности синтаксиса sql? следят за группировками, делают нормальную конкатенацию, добавляют оконные функции, умеют returning, делают мат. вьюхи, умеют селектить внешние базы данных и ещё 1000 других вещей?
                                Ответить
                                • >> делают мат

                                  ага. и зашквар
                                  Ответить
                                • Пока разница в используемых подсистемах хранения. B mariadb умеет в полнотекстовый поиск по innodb из коробки.
                                  Ответить
                                • умеют селектить внешние базы данных

                                  Это что такое ? select * from db2.test; оно ?
                                  Ответить
        • У тех, кому лень разбираться, всегда говном код обрастает. А вообще кейворды подсвечиваются синеньким в надлежайшем гуе. Даже гуглить не надо.
          Ответить
      • `phpmyadmin` `сам` `предлагает` `писать` `запрос` `с` `такими` `тиками`.
        Ответить

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