mysql - MySQL 5.0语句中like子句的使用方法

标签 mysql stored-procedures sql-like mysql-5.0

我在 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/

相关文章:

php - SQL 匹配 5 个或更少的通配符

mysql - 如何处理mysql中存储过程中的异常?

php - 如何用PHP获取MySql表中最后插入行的ID

php - 保存网页内容(php)

python - 如何在 Python 中使用表值参数访问 SQL Server 2008 存储过程

php - 在非对象上调用成员函数 fetch()

python - 优化此 MySQL 查询的最佳方法是什么?

Java存储过程: OUT params

sql - 何时使用存储过程而不是嵌入式 SQL

php - 在 MySQL 中按特定关键字对结果进行分组?