MySQL Update проблема - PullRequest
       1

MySQL Update проблема

0 голосов
/ 02 октября 2010

Мой запрос mysql не обновляет мою базу данных правильно, может кто-нибудь помочь мне решить эту проблему. Я думаю, что это как-то связано с JOIN.

Вот мой запрос mysql.

"UPDATE users 
 SET users.last_login = NOW() 
 FROM users JOIN info ON info.user_id = users.user_id 
 WHERE (info.email = '" . $e . "' OR users.username = '" . $e . "') 
 AND users.password = '" . $sha512 . "' 
 AND users.active IS NULL"

Вот рабочий запрос до того, как я использовал JOIN.

"UPDATE users SET last_login = NOW() WHERE (email = '" . $e . "' OR username = '" . $e . "') AND password = '" . $sha512 . "' AND active IS NULL"

Ответы [ 2 ]

0 голосов
/ 02 октября 2010

Ваш синтаксис запроса неправильный.Синтаксис для обновления кросс-таблиц в MySQL несколько
отличается от T-SQL.Это должно быть, как показано ниже.

 UPDATE users JOIN info ON info.user_id = users.user_id
 SET users.last_login = NOW()   
 WHERE (info.email = '" . $e . "' OR users.username = '" . $e . "') 
 AND users.password = '" . $sha512 . "' 
 AND users.active IS NULL

Проверьте ссылку ниже -

http://blog.ookamikun.com/2008/03/mysql-update-with-join.html

0 голосов
/ 02 октября 2010

Не видя таблиц или сгенерированного SQL, я просто догадываюсь здесь, как указывало Peeka .

Я предполагаю, что в ваших таблицах есть данные, которые позволяют (email = '" . $e . "' OR username = '" . $e . "') работать.Тем не менее, это довольно открыто - обновите любую запись, которая имеет электронную почту ИЛИ имя пользователя.Когда вы добавляете JOIN, это более строгое - обновите запись , в которой есть это электронное письмо ИЛИ имя пользователя.

Проверьте ваше второе обновление, держу пари, что оно не обновляет ту запись, о которой вы думаете.Если это так, я бы сказал, что ваши внешние ключи испорчены, и у вас нет соответствующих данных в пользователях и информации.Любой из них продемонстрирует, что JOIN не работает.

Если это не поможет - опубликуйте полученный SQL и вашу схему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...