- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 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
)
Вот на такой код наткнулся в корпоративном фреймворке. Стоит ли говорить, что весь запрос был написан в одну строку.
guest 24.12.2010 18:17 # +4
fey 24.12.2010 18:31 # 0
Анонимус 24.12.2010 18:34 # +3
вообще в этому запросу видна дерьмовость архитектуры базы
fey 24.12.2010 18:42 # 0
А как тогда в данном случае сделать update поля email без подзапроса.
Просто я реально не знаю, если вы подскажите , то буду благодарен.
lstem 24.12.2010 18:51 # −10
Анонимус 24.12.2010 18:59 # +3
а что пытался сделать автор? перенести емейл из базы в базу?
maghamed 24.12.2010 20:31 # +1
Там выше говорили по поводу оптимизации. Если интересно. Я переписал этот запрос так:
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;
fey 24.12.2010 21:21 # 0
maghamed 24.12.2010 20:37 # 0
maghamed 24.12.2010 20:35 # 0
Это показатель того что:
во-первых, люди не знают конструкцию IS NOT NULL и заменяют ее NOT ( (выражение) IS NULL)
во-вторых, не понимают природы подрапросов и лепят их везде. Что в случае с мускулом до сих пор является преступлением.
Lure Of Chaos 24.12.2010 18:40 # +2
fey 24.12.2010 18:48 # 0
lstem 24.12.2010 18:50 # −7
lstem 24.12.2010 18:51 # −8
guest 25.12.2010 00:21 # +1
Или батхёрт (болезнь, сам нагуглишь)?
bugmenot 25.12.2010 00:30 # 0
istem 25.12.2010 00:52 # +3
TarasB 25.12.2010 01:11 # +1
lstem 24.12.2010 18:50 # −8
Lure Of Chaos 24.12.2010 18:59 # +2
fey 24.12.2010 18:54 # 0
lstem 24.12.2010 18:57 # −11
xXx_totalwar 24.12.2010 18:58 # +5
это сереженька мишустик мимо гугла промахнулся когда видео своей мамаши искал
lstem 24.12.2010 19:02 # −9
Lure Of Chaos 24.12.2010 19:04 # 0
lstem 24.12.2010 19:22 # −4
bugmenot 24.12.2010 21:28 # 0
Анонимус 24.12.2010 21:34 # 0
bugmenot 24.12.2010 23:35 # 0
хмм, корпорация не Pfizer случайно? :-)
я как бы намекал на то, что если там mysql и, хуже того, php...