mysql limit函数传参问题

时间:2022-09-05 18:48:13
limit函数有限制参数必须为整型,现在有个需求是要给limit函数传入二个参数,而我这边能提供的二个参数是string型的,如果转化为int性被limit函数接受? 用cast(? as unsigned int)不行,求高手赐教 ,在线等

11 个解决方案

#1


MYSQL之前的版本中 limit n,m 参数中无法使用变量,仅可使用常量。

#2


现在是可以使用变量的不过貌似必须是整型变量,我传入string变量然后用函数转化都不行···求高手指导

#3


limit 0+string变量 试试

#4


这个方法不行

#5


引用 4 楼 yj1233321 的回复:
这个方法不行

那就用用字符串累加生成SQL语句的方法

#6


不太懂 举个例子行不 谢谢

#7


既然数据库不行  那就直接提供整型吧  哪方便哪里来做

#8


我现在是必须要以传参的形式进去给他参数,不能提供整型,只有string型···

#9



set @start_row = 0+start_string;
set @max_count = 0+max_string;

select
fields
from
t_table
where
conditions
limit @start_row,@max_count

#10


PREPARE STMT1 FROM 'SELECT * FROM merchantcrm.merchant_cm_merchant_member_00 LIMIT ?,?';
SET @START = '0';
SET @SIZE = '4';

EXECUTE STMT1 USING @START,@SIZE;
经过验证发现其实string型本身是可以的,可能是分库分表规则zdal那边有问题,后来在规则检验前强制转化了下可以了 不过期待更好的回答

#11


直接拼接字符串,然后再执行,比较直观.

#1


MYSQL之前的版本中 limit n,m 参数中无法使用变量,仅可使用常量。

#2


现在是可以使用变量的不过貌似必须是整型变量,我传入string变量然后用函数转化都不行···求高手指导

#3


limit 0+string变量 试试

#4


这个方法不行

#5


引用 4 楼 yj1233321 的回复:
这个方法不行

那就用用字符串累加生成SQL语句的方法

#6


不太懂 举个例子行不 谢谢

#7


既然数据库不行  那就直接提供整型吧  哪方便哪里来做

#8


我现在是必须要以传参的形式进去给他参数,不能提供整型,只有string型···

#9



set @start_row = 0+start_string;
set @max_count = 0+max_string;

select
fields
from
t_table
where
conditions
limit @start_row,@max_count

#10


PREPARE STMT1 FROM 'SELECT * FROM merchantcrm.merchant_cm_merchant_member_00 LIMIT ?,?';
SET @START = '0';
SET @SIZE = '4';

EXECUTE STMT1 USING @START,@SIZE;
经过验证发现其实string型本身是可以的,可能是分库分表规则zdal那边有问题,后来在规则检验前强制转化了下可以了 不过期待更好的回答

#11


直接拼接字符串,然后再执行,比较直观.