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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
UPDATE 
	phplist_user_user 
SET 
	email = (
		SELECT 
			Email 
		FROM 
			User, phplist_usersubscribers 
		WHERE 
			phplist_usersubscribers.userid = User.Id 
			AND 
			phplist_usersubscribers.subscribersid = phplist_user_user.id 
			AND 
			NOT (Email IS NULL) 
			LIMIT 1
			) 
	WHERE 
		NOT (
			(SELECT 
				id 
			FROM 
				phplist_usersubscribers 
			WHERE 
				phplist_usersubscribers.subscribersid = phplist_user_user.id 
			LIMIT 1
			) IS NULL
			)

Вот на такой код наткнулся в корпоративном фреймворке. Стоит ли говорить, что весь запрос был написан в одну строку.

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

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

  • Сейчас скажут, что это сделал компренда...
    Ответить
  • А что вам конкретно не нравиться в этом запросе, а то я с ходу так понять не могу
    Ответить
    • а Вам нравица 2 подзапроса? или Вам нравица что вместо EXISTS делается выборка с лимитом?

      вообще в этому запросу видна дерьмовость архитектуры базы
      Ответить
      • Ну допустим условие в выборке заменим на exists, не думаю что мы выиграем в скорости , но в читаемости всяко.
        А как тогда в данном случае сделать update поля email без подзапроса.
        Просто я реально не знаю, если вы подскажите , то буду благодарен.
        Ответить
        • СИСЬКИ ДРОЧИТЬ ФОТО ПИЗДА КОНЧА СЫН ТРАХАЕТ МАТЬ СОСЁТ У КОНЯ ПЕРВАЯ БРАЧНАЯ НОЧЬ ЕЛЕНЫ БЕРКОВОЙ ГОЛАЯ ВЕРА БРЕЖНЕВА АНАЛЬНЫЙ СЕКС ХУЙ В ЖОПЕ
          Ответить
        • Выиграем и в том и в другом.

          а что пытался сделать автор? перенести емейл из базы в базу?
          Ответить
          • Да, здесь фактически выполняется синхронизация - перенос имейлов из одной таблицы в другую.

            Там выше говорили по поводу оптимизации. Если интересно. Я переписал этот запрос так:

            UPDATE
            phplist_user_user puu
            JOIN
            phplist_usersubscribers pu ON puu.id = pu.subscribersid
            JOIN
            User u ON pu.userid = u.Id
            SET
            puu.email = u.Email
            WHERE
            u.Email IS NOT NULL
            AND pu.subscribersid = puu.id
            AND pu.id IS NOT NULL;
            Ответить
            • Ага спасибо за пояснение, я даже как то и не знал что в update можно использовать join, буду знать , век живи век учись
              Ответить
        • я чуть ниже отписал как это сделать через джоин - если вам интересно.
          Ответить
      • нет, это не показатель дерьмовости архитектуры. Я чуть ниже привел код "отрефактореного" запроса. И он выполняется вполне нормально.

        Это показатель того что:
        во-первых, люди не знают конструкцию IS NOT NULL и заменяют ее NOT ( (выражение) IS NULL)
        во-вторых, не понимают природы подрапросов и лепят их везде. Что в случае с мускулом до сих пор является преступлением.
        Ответить
  • парочка таких запросов и у руководства встает вопрос, что надо подкупить еще серваков помощнее
    Ответить
    • Ну хоть ты тогда скажи как правильно это сделать на голимом sql
      Ответить
      • СИСЬКИ ДРОЧИТЬ ФОТО ПИЗДА КОНЧА СЫН ТРАХАЕТ МАТЬ СОСЁТ У КОНЯ ПЕРВАЯ БРАЧНАЯ НОЧЬ ЕЛЕНЫ БЕРКОВОЙ ГОЛАЯ ВЕРА БРЕЖНЕВА АНАЛЬНЫЙ СЕКС ХУЙ В ЖОПЕ
        Ответить
    • СИСЬКИ ДРОЧИТЬ ФОТО ПИЗДА КОНЧА СЫН ТРАХАЕТ МАТЬ СОСЁТ У КОНЯ ПЕРВАЯ БРАЧНАЯ НОЧЬ ЕЛЕНЫ БЕРКОВОЙ ГОЛАЯ ВЕРА БРЕЖНЕВА АНАЛЬНЫЙ СЕКС ХУЙ В ЖОПЕ
      Ответить
      • У тебя шизофазия (болезнь, поток несвязанных слов)?
        Или батхёрт (болезнь, сам нагуглишь)?
        Ответить
          • Просто в диалогах, данный набор слов ему никак не удавалось вставить... Вот и отрывается...
            Ответить
            • У коня первая брачная ночь. Надо полагать, с ним.
              Ответить
  • СИСЬКИ ДРОЧИТЬ ФОТО ПИЗДА КОНЧА СЫН ТРАХАЕТ МАТЬ СОСЁТ У КОНЯ ПЕРВАЯ БРАЧНАЯ НОЧЬ ЕЛЕНЫ БЕРКОВОЙ ГОЛАЯ ВЕРА БРЕЖНЕВА АНАЛЬНЫЙ СЕКС ХУЙ В ЖОПЕ
    Ответить

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

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

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


    8