База данных MySQL странно реагирует на обновление - PullRequest
0 голосов
/ 01 июля 2018

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

если пароль является чем-то нормальным, он меняет пароль на 0, но игнорирует значение токена.

если пароль уже равен 0, он просто запускается, ничего не делает и сообщает, что затронуто 0 строк.

Если бы кто-то мог подсказать мне, почему это происходит, это было бы здорово. Мой SQL это ...

UPDATE travisor_tradesperson SET password='123456789' AND token = '' WHERE email='rhamilton469@qub.ac.uk'

Ответы [ 3 ]

0 голосов
/ 01 июля 2018

Что касается , почему он это делает , поскольку у вас был неправильный синтаксис (как в другом ответе), вся часть после SET

password='123456789' AND token = ''

, вероятно, было интерпретировано как одно присвоение '123456789' AND token = '' в password. Вероятно, MySQL понимал, что это применяет логическое И к строке, преобразованной в логическое, и результат сравнения token = ''.

0 голосов
/ 01 июля 2018

Используйте запятые для разделения столбца и является оператором, который для условного выражения мы можем использовать после оператора where.

UPDATE travisor_tradesperson 
SET    password = '123456789', token = 'xyz' 
WHERE  email='rhamilton469@qub.ac.uk'
0 голосов
/ 01 июля 2018

Синтаксис неверен. Вы разделяете столбцы в предложении set запятой (,), а не (and):

UPDATE travisor_tradesperson 
SET    password = '123456789', token = ''
-- Here ---------------------^
WHERE  email='rhamilton469@qub.ac.uk'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...