NutzCN Logo
问答 sql文件中书写like查询语句问题
发布于 2253天前 作者 码农 2034 次浏览 复制 上一个帖子 下一个帖子
标签:
SELECT * FROM SYS_USER WHERE "name" LIKE  %@keyWord%

sql文件中这样写,生成的sql语句是这样的:

SELECT * FROM SYS_USER WHERE "name" LIKE  %'八'%

而我需要的正确sql语句是这样的:

SELECT * FROM SYS_USER WHERE "name" LIKE  '%八%'
public List<Sys_user> searchUser(String keyWord) {
        nutDao.setSqlManager(new FileSqlManager("db"));
        String sqls = nutDao.sqls().get("searchUser");
        Sql sql = Sqls.create(sqls);
        sql.params().set("keyWord",keyWord);
        sql.setCallback(Sqls.callback.entities());
        sql.setEntity(dao.getEntity(Sys_user.class));
        dao.execute(sql);
        List<Sys_user> list = sql.getList(Sys_user.class);
        return list;
    }
3 回复

@占位符就是预编译SQL中的问号

下面的写法才是正路

SELECT * FROM SYS_USER WHERE "name" LIKE  @keyWord

@wendal

SELECT * FROM SYS_USER WHERE "name" LIKE  '八'

那这样的只能在代码中这样加上%吗?

 sql.params().set("keyWord",keyWord);
 sql.params().set("keyWord","%"+keyWord+"%");

但是我不太喜欢这么写,还有别的方法吗?

有,但不会比这个正确/好用

添加回复
请先登陆
回到顶部