SELECT * FROM tableName WHERE name LIKE '%' || #{text} || '%';
2. sql中字符串拼接(2)
SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');
3. 使用 ${...} 代替 #{...}
SELECT * FROM tableName WHERE name LIKE '%${text}%';
4. 程序中拼接
Java
// or String searchText = "%" + text + "%";
String searchText = new StringBuilder("%").append(text).append("%").toString();
parameterMap.put("text", searchText);
SqlMap.xml
SELECT * FROM tableName WHERE name LIKE #{text};
异常:
java.lang.IllegalArgumentException: modify is ambiguous in Mapped Statements collection (try using the full name including the namespace, or rename one of the entries) at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:466) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:349) at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:137) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:46) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:34) at $Proxy10.modify(Unknown Source)
1. sql字符串拼接(1) SELECT * FROM tableName WHERE name LIKE '%' || #{text} || '%';2. sql中字符串拼接(2) SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 3. 使用 ${.