问题一:
select *
from project_info
where project_name LIKE concat('%', #{projectName}, '%')
我想将这个修改为有project_name时按project_name查。有id时按id查
答案
select *
from project_info
where
case
when #{projectName} is not null and #{projectName} != '' then project_name LIKE concat('%', #{projectName}, '%')
when #{id} is not null then id = #{id}
end;
问题二:
如果两个输入参数都为空,只执行
select *from project_info
答案
SELECT *
FROM project_info
WHERE
IFNULL(#{projectName}, '') != '' AND project_name LIKE CONCAT('%', #{projectName}, '%')
OR IFNULL(#{id}, '') != '' AND id = #{id}
OR (IFNULL(#{projectName}, '') = '' AND IFNULL(#{id}, '') = '');