ЯА
Яковлев Андрей

mysql - совсем не сравнивает строки. Что это такое, по логике чисто если, то должно

Код:

CREATE TABLE IF NOT EXISTS `usernames`

(

`id_user` INT UNSIGNED NOT NULL AUTO_INCREMENT,

`login` VARCHAR(25) NOT NULL COMMENT 'login',

`role` VARCHAR(30) NOT NULL COMMENT 'role value',

`pass` VARCHAR(70) NOT NULL COMMENT 'passwordHash',

`id_pict` INT UNSIGNED COMMENT 'avatar of this user',

PRIMARY KEY(`id_user`)

)ENGINE = innoDB COMMENT 'usernames' CHARACTER SET=utf8 COLLATE utf8_bin;

INSERT INTO `usernames` (`login`, `pass`, `role`) VALUES ('tester', md5('123'), 'admin');

DROP PROCEDURE IF EXISTS `confirm_me`;

DELIMITER |

CREATE PROCEDURE confirm_me(IN login VARCHAR(25), IN pass VARCHAR(70), IN role VARCHAR(30))

BEGIN

SELECT CONVERT(pass USING binary) INTO @template;

SELECT md5(@template) INTO @md5temp;

SELECT * FROM `usernames` WHERE BINARY `pass` = @md5temp;

END;

|

DELIMITER ;

CALL confirm_me('tester', '123', 'admin');

#И вот в этом месте выдается empty set, хотя должен вывести строку с tester. Что-то я делаю неправильно, но что?

ОК
Оксана Карцева

а ты сам чисто по логике как считаешь где сравнение должно происходить? в какой строке?

Похожие вопросы
MySQL какой запрос максимально быстро отработает 84000 строк, если надо вывести строки в которых есть искомое значение?
Логика процесса. Подскажите! PHP+MySQL
C# + MySQL Как определить тип полей в строке?
PHP and MySql строка с ":"
помогите! у меня виндовс 7,нужно включить базу mysql через командную строку и подключиться к монитору mysql, что делать?
Что такое Логика? мне само определение нужно... Логика - это. ..Логика - это.
Подскажите пожалуйста как вывести из mysql все строки и удалить не нужные?!
Подскажите пожалуйста как вывести из mysql все строки и удалить не нужные?!!
как создать такую таблицу mysql
Как в MySQL можно убрать дублирующиеся строки?