MySQL存储过程中的可选参数有很多,包括:
SQL_CACHE
: 用于缓存结果集的查询缓存;SQL_NO_CACHE
: 不对结果集进行查询缓存;SQL_SMALL_RESULT
: 如果请求结果集只有较少行,则返回它们,而不是生成较慢的全表扫描;SQL_BIG_RESULT
: 如果请求结果集有很多行,则返回它们,而不是生成较慢的全表扫描;SQL_BUFFER_RESULT
: 如果结果集很大,则在内存缓冲区而非磁盘存储;SQL_NO_TOTAL
: 返回总行数,而不计算行数;SQL_CALC_FOUND_ROWS
: 在SELECT语句中计算查询返回的总行数而不实际获取它们;SQL_NO_LOCK
: 如果表处于读已锁定状态,则返回下一个可用的行;SQL_UNLOCK
: 如果表处于已锁定的状态,则释放任何已锁定的锁定;SQL_ATTR_CURSOR_TYPE
: 指定光标的类型(只读或读/写);SQL_ATTR_READ_ONLY
: 如果启用,则返回一个只读查询;以下是一个实例存储过程:
DELIMITER $$
CREATE PROCEDURE my_procedure
BEGIN
SET @a = 'MyText';
PREPARE statement FROM CONCAT('SELECT * FROM my_table WHERE name LIKE CONCAT("%",@a,"%");');
EXECUTE statement;
END $$
DELIMITER ;
在这个存储过程中,我们定义了五个参数,包括@a
、@b
和@c
来存储可变参数的值。我们使用'@'
符号来存储可变参数的别名和实际参数值,并使用'
符号来指定@b
和@c
为my_table表格中的
name'列中的条件。我们最后在查询中使用
'WHERE name LIKE %a%来指定查询名称中的
%a%来匹配变量
@a`的值。
以上就是在MySQL存储过程中可选择的参数。根据需要,可以选择不同的参数以优化查询的结果。
领取专属 10元无门槛券
手把手带您无忧上云