pl sql 列名作为参数
pl sql column name as parameter
这是存储过程:
DELIMITER $$
CREATE PROCEDURE select_vehicles(IN name_of_column VARCHAR(255))
BEGIN
SELECT * FROM vehicle order by name_of_column;
END
$$ DELIMITER ;
代码没有错误,但“order by”不起作用。
如何将列名作为参数传递并使用它们
您需要动态 SQL 才能将列名作为参数传递。所以像:
DELIMITER $$
CREATE PROCEDURE select_vehicles(IN name_of_column VARCHAR(255))
BEGIN
SET @sql = CONCAT('SELECT * FROM vehicle order by `', name_of_column, '`');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
$$
这是存储过程:
DELIMITER $$
CREATE PROCEDURE select_vehicles(IN name_of_column VARCHAR(255))
BEGIN
SELECT * FROM vehicle order by name_of_column;
END
$$ DELIMITER ;
代码没有错误,但“order by”不起作用。
如何将列名作为参数传递并使用它们
您需要动态 SQL 才能将列名作为参数传递。所以像:
DELIMITER $$
CREATE PROCEDURE select_vehicles(IN name_of_column VARCHAR(255))
BEGIN
SET @sql = CONCAT('SELECT * FROM vehicle order by `', name_of_column, '`');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
$$