我在 MySQL 5.0 中使用 'like' 子句时遇到问题 我在 MySQL 5.0 中写了一个存储过程 并从我的 Java 程序中调用存储过程 select 语句中下面的存储过程我想为 like 子句获取参数 departmentname 的值请帮忙
DROP PROCEDURE IF EXISTS upSelTests;
DELIMITER //
CREATE PROCEDURE upSelTests
(
IN departmentname varchar(50),
IN testDateFrom varchar(10),
IN testDateTo varchar(10)
)
BEGIN
declare testDateFrom1 varchar(30);
select PatientID,LabNo,arriveddate,RecieptNo,patientname,referredby,ID from
tblAcceptTest where STR_TO_DATE(arriveddate, '%d/%m/%Y')>=STR_TO_DATE(testDateFrom,
'%d/%m/%Y') and STR_TO_DATE(arriveddate, '%d/%m/%Y') <= STR_TO_DATE(testDateTo,
'%d/%m/%Y') and Status = 0 and DeptName like '%departmentname%';
END //
DELIMITER ;
最佳答案
当您将 departmentname
括在引号中时,它就变成了字 rune 字,不再是变量。它的值被忽略,而是使用文字 '%departmentname%'
。
最简单的解决方案是使用 CONCAT
添加 '%'
作为前缀和后缀,如下所示:
and DeptName LIKE CONCAT( '%', departmentname, '%')
例如,如果 departmentname
设置为 police
,则结果变为
and DeptName LIKE '%police%'
关于mysql - MySQL 5.0语句中like子句的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15926724/