Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранимая процедура и текстовый параметр / 10 сообщений из 10, страница 1 из 1
07.07.2014, 11:54:33
    #38689273
dt88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
процедура принимает 1 параметр и выдает строку, но не работает.

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE DEFINER= PROCEDURE `agent_info`(IN `agent_login` TEXT)
    NO SQL
BEGIN

SELECT * FROM `agents` WHERE `login` = agent_login;

END



Запрос, например:
Код: sql
1.
SELECT * FROM `agents` WHERE `login` = 'dt88';


отлично срабатывает. А вот процедура возвращает 0 строк. Не пойму почему(
(если в процедуре вместо WHERE `login` = использовать WHERE `id` = и принимать числовое значение (изменив естественно на IN `agent_login` INT , то всё срабатывает... но вот с текстом не получается почему-то... может быть в кодировке что-то не так?))
...
Рейтинг: 0 / 0
07.07.2014, 12:12:47
    #38689305
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
dt88процедура принимает 1 параметр и выдает строку, но не работает.

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE DEFINER= PROCEDURE `agent_info`(IN `agent_login` TEXT)
    NO SQL
BEGIN

SELECT * FROM `agents` WHERE `login` = agent_login;

END



Запрос, например:
Код: sql
1.
SELECT * FROM `agents` WHERE `login` = 'dt88';


отлично срабатывает. А вот процедура возвращает 0 строк. Не пойму почему(
(если в процедуре вместо WHERE `login` = использовать WHERE `id` = и принимать числовое значение (изменив естественно на IN `agent_login` INT , то всё срабатывает... но вот с текстом не получается почему-то... может быть в кодировке что-то не так?))

`login` = agent_login;
вот это что означает??? логин должен равняться переменой или названию столбца??? мускл щитает что агент_логин это название столбца.

КСТАТЕ вопрос для гугу. если имя переменой совпадает с именем поля таблицы, как их различать в хранимках???
...
Рейтинг: 0 / 0
07.07.2014, 12:34:48
    #38689331
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
alex564657498765453если имя переменой совпадает с именем поля таблицы, как их различать в хранимках??? http://dev.mysql.com/doc/refman/5.5/en/local-variable-scope.html If an SQL statement, such as a SELECT ... INTO statement, contains a reference to a column and a declared local variable with the same name, MySQL currently interprets the reference as the name of a variable.
...
Рейтинг: 0 / 0
07.07.2014, 12:40:45
    #38689338
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
miksoftalex564657498765453если имя переменой совпадает с именем поля таблицы, как их различать в хранимках??? http://dev.mysql.com/doc/refman/5.5/en/local-variable-scope.html If an SQL statement, such as a SELECT ... INTO statement, contains a reference to a column and a declared local variable with the same name, MySQL currently interprets the reference as the name of a variable.

ну ваще я проверил, и в хранимке таки, воспринимает как имя поля!!!

при разных переменых - выдаёт одну строку, при одинаковой - выдаёт все строки, ибо везде логин = логину
...
Рейтинг: 0 / 0
07.07.2014, 12:46:43
    #38689343
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
alex564657498765453при одинаковой - выдаёт все строки, ибо везде логин = логинуА может, ибо переменная=переменная? хоть бы код показали... и точную версию MySQL.
...
Рейтинг: 0 / 0
07.07.2014, 13:14:28
    #38689365
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
miksoftalex564657498765453при одинаковой - выдаёт все строки, ибо везде логин = логинуА может, ибо переменная=переменная? хоть бы код показали... и точную версию MySQL.

:) прикол
...
Рейтинг: 0 / 0
07.07.2014, 13:22:22
    #38689366
dt88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
alex564657498765453`login` = agent_login;
вот это что означает??? логин должен равняться переменой или названию столбца??? мускл щитает что агент_логин это название столбца.

т.е. мне необходимо привести agent_login к тексту? Какой раздел мануала почитать?
...
Рейтинг: 0 / 0
07.07.2014, 13:49:09
    #38689401
dt88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
Код: sql
1.
2.
3.
4.
5.
BEGIN
SET @al := agent_login;
SELECT * FROM `agents` WHERE `agents`.`login` = @al;

END



такой вариант тоже не работает (хоть и переменная agent_login тут не нужна для посредничество, просто отсавил её)..
...
Рейтинг: 0 / 0
07.07.2014, 14:27:05
    #38689458
Gekommen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
Вот здесь решена похожая проблема

http://www.sql.ru/forum/693218/strannaya-problema-raboty-smesi-mysql-like-utf-8
...
Рейтинг: 0 / 0
07.07.2014, 14:29:38
    #38689462
dt88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура и текстовый параметр
GekommenВот здесь решена похожая проблема

http://www.sql.ru/forum/693218/strannaya-problema-raboty-smesi-mysql-like-utf-8

Спасибо большое! Изменил сравнение с utf8_unicode_ci на utf8_general_ci и всё заработало
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранимая процедура и текстовый параметр / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]