不同数据库的LIKE语句使用略有差别,这里记录一下:
Oracle数据库:
SELECT *
FROM user
WHERE
name LIKE CONCAT('%',#{name},'%')
或
SELECT *
FROM user
WHERE
name LIKE '%'||#{name}||'%'
SQL Server数据库
SELECT *
FROM user
WHERE
name LIKE '%'+#{name}+'%'
MySQL数据库
SELECT *
FROM user
WHERE
name LIKE CONCAT('%',#{name},'%')
DB2数据库
SELECT *
FROM user
WHERE
name LIKE CONCAT('%',#{name},'%')
或
SELECT *
FROM user
WHERE
name LIKE '%'||#{name}||'%'
通用
SELECT *
FROM user
WHERE 1 = 1
<if test="name != null and name != ''">
<bind name="pattern" value="'%' + _parameter.name + '%'" />
AND name LIKE #{pattern}
</if>