Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте еще раз!))
Никак не могу понять, почему у меня выполняется запрос в следующей форме:
SELECT * FROM mysql.user WHERE ((User = "root") AND (Host=0));
Ведь поле Host в данном случае не пустое, а содержит "localhost". Или localhost - это все равно, что NULL?
Спасибо!
Неактивен
Проводится сравнение строки с числом. При этом Host неявно приводится к числу - любая строка, начинающаяся с буквы превращается в ноль. Запрос бессмысленный по своему назначению, так как выдаст юзеров root со всех нечисловых хостов.
Неактивен
Спасибо, понятно. По неопытности я не учел, что "= 0" и "IS NULL" - не одно и то же.
Кроме того, насколько я понял, поле "host" вообще пустым быть не может - там либо "%", либо "localhost", либо что-то более содержательное.
Неактивен