我在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 ;
答案 0 :(得分:0)
当您将departmentname
括在引号中时,它将变为字符文字,并且不再是变量。它的值被忽略,而使用文字'%departmentname%'
代替。
最简单的解决方案是使用CONCAT
添加'%'
作为前缀和后缀,如下所示:
and DeptName LIKE CONCAT( '%', departmentname, '%')
例如,如果departmentname
设置为police
,结果将变为
and DeptName LIKE '%police%'
答案 1 :(得分:-1)
格式:
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
E.g:
SELECT * from tutorials_tbl
WHERE tutorial_author LIKE '%jay';