2014-12-29 5 views
0

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

Я получаю две ошибки: 1.Not позволило вернуть результирующий набор из функции 2.ROW_COUNT Не существует (не называется)

Вот мой код до сих пор:

BEGIN 

declare pageexists int; 
declare rowcount int; 

select distinct ITU from tblITU 
where ITU = inuser; 
SET rowcount = COUNT(*) FROM tblITU; 

return rowcount; 

END 

Заранее благодарен!

ответ

0

Для SELECT, вы можете использовать FOUND_ROWS построить (документированы):

ВЫБРАТЬ SQL_CALC_FOUND_ROWS что-то из your_table ГДЕ бы то ни было;

SELECT FOUND_ROWS();

, который возвращает количество строк в последнего запроса на выборку (или, если первый запрос содержит пункт LIMIT, он возвращает количество строк, там уже было бы без ограничений).

Для изменения/удаления/вставки, это ROW_COUNT построить

вставить в your_table ЗНАЧЕНИЯ (1,2,3);

SELECT ROW_COUNT();

, который будет возвращать количество затронутых строк.

Цитируется: Does Mysql have an equivalent to @@ROWCOUNT like in mssql?

+0

Я попробовал это. Кажется, это не работает, или я не использую его правильно. Я пробовал это: BEGIN declare pagesexists int; объявить rowcount int; выберите отдельный ITU от tblITU , где ITUsers = inuser; SELECT SQL_CALC_FOUND_ROWS * FROM tblITU; rowcount = SELECT FOUND_ROWS(); return rowcount; END –

+0

Этот параметр по-прежнему дает ошибку «Не разрешено возвращать результат из функции». –

+0

Простите, попробуйте следующее: SET rowcount = (выберите отдельный счет (ITU) от tblITU, где ITUsers = inuser); RETURN rowcount; – Jasper