параметр передачи - поле после, где mysql, процедура

0

Я делаю свой фильтр со столбцом таблицы, проходя через параметр (поле после того, где в строке 7), но передал столбец параметров таблицы, mysql не знает

use testphantrang;
DELIMITER $$
CREATE PROCEDURE 'filter'(in field varchar(40), in giatri varchar(40),in index_of_page int)
begin
        declare xx int ;
        set xx = index_of_page*15;
        SELECT * from test where field like CONCAT('%', giatri,'%') limit xx,15;
END; $$
DELIMITER ;
call 'filter'('email','b',0);

Ниже мой стол:

Изображение 174551

  • 0
    Вы можете использовать CONCAT для объединения строк, таких как CONCAT («SELECT * from test where», field, «например, CONCAT ('%',", giatri, "'%') limit", xx, ", 15")
  • 0
    это избыточная одиночная кавычка. Версия сервера .MariaDB для правильного синтаксиса для использования рядом с 'b'% ') limit0,15' в строке 1. нужно удалить 2 одинарные кавычки рядом с b @@
Теги:
procedure

1 ответ

0
Лучший ответ
DELIMITER $$
CREATE PROCEDURE 'filter'(in field varchar(40), in giatri varchar(40),in index_of_page int)
begin
        declare xx int ;
        set xx = index_of_page*15;

       set @query = CONCAT('SELECT * from test where field rlike ''', giatri,''' limit ',xx,',15;');

 PREPARE dynamic_statement FROM @query;
 EXECUTE dynamic_statement;
 DEALLOCATE PREPARE dynamic_statement;
END; $$
DELIMITER ;


call 'filter'('email','b',0);
  • 0
    спасибо это работа

Ещё вопросы

Сообщество Overcoder
Наверх
Меню