2012-04-28 3 views
0

Я прочитал другие сообщения, и я действительно не понимаю, что я делаю неправильно здесь, потому что это такое простое заявление.Обновление MySQL, установлено с Где не работает?

ничего '()', являются комментариями

Запрос:

[UPDATE users, sites 
SET users.idSiteRegUsers='1' 
WHERE sites.SiteActivateSites='DEL' ] 

(TBL, чтобы выбрать для обновления в течение всего запроса) (Настройка пользователей TBL idSiteRegUsers 1) (Где только сайты в сайтах tbl = DEL)

Я также прочитал http://bugs.mysql.com/bug.php?id=52651 и попытался изменить INT на VARCHAR и ОБНОВЛЕНИЕ 0 до DEL из-за ошибки, но все тот же результат.

Издание:

У меня есть 2129 записей, которые нуждаются в обновлении, как найти с помощью простого оператора выбора, чтобы понять количество результатов.

([SELECT 
sites.SiteActivateSites, 
sites.id_Sites, 
users.idSiteRegUsers, 
users.CompanyNameUsers, 
sites.LinkNameSites 
FROM 
users 
INNER JOIN sites ON users.idSiteRegUsers = sites.id_Sites 
WHERE 
sites.SiteActivateSites != '1']) 'simple' 

Но запрос UPDATE обновляет все 4000+ записей, а не только запись, = DEL, но те, которые являются ссылками на другое значение, например, = 1.

Я что-то пропустил?

Приветствие, Джо

ответ

1

Так же, как с вашей командой SELECT, вам нужно сказать MySQL, как соединяются таблицы: ваш UPDATE в настоящее время делают полное декартово произведение двух таблиц (с каждой строкой в ​​users вместе с каждый ряд в sites - поэтому состояние фильтра WHERE на sites по-прежнему приводит к совпадению по каждой записи от users).

Попробуйте вместо этого:

UPDATE users JOIN sites ON users.idSiteRegUsers = sites.id_Sites 
SET users.idSiteRegUsers='1' 
WHERE sites.SiteActivateSites='DEL' 
+0

Ха-ха Stupid меня! большое спасибо за то, что вышло. Вы - суперзвезда eggyal! – JosephGourvenec

Смежные вопросы