史蒂夫和斯凯 发表于 2016-10-21 02:18:02

mysql存储过程中模糊查询语句拼接问题

set @stmt=concat('select * from jargon where name like \'%',ucase(t),'%\' or memo like \'%',ucase(t),'%\' order by id desc limit ',snum,',',size);
prepare stmt from @stmt;
execute stmt;
DEALLOCATE PREPARE stmt;
select count(*) from jargon where name like CONCAT('%',ucase(t),'%') or memo like CONCAT('%',ucase(t),'%');
对比前后两句like后拼接的差异,前一句需要为模糊匹配的对象加单引号;后一句则不需要,但是与limit语句拼接时,若limit相关的两个参数为变量,则不可以直接拼接。(具体原因不明)
页: [1]
查看完整版本: mysql存储过程中模糊查询语句拼接问题