我想从数据库中获取所有有字词的用户。foo
无论是在他们的用户名中还是在他们的电子邮件地址中。在Slick 3.x中是怎么写的?
select * from users where username like '%foo%' or email like '%foo%';
如果你已经定义了一个用户表,那么使用user的tablequery对象,你可以通过下面的操作来实现。
// select * from users where username like '%foo%' or email like '%foo%';
users.filter(e => e.username like '%foo%' || e.email like '%foo%').result
如果你运行上面的DBIOAction,那么你将得到预期的结果。
http:/scala-slick.orgdoc3.3.1queries.html#sorting-and-filtering(排序和过滤)
假设 query
是搜索字符串:这确实有效。
Users.filter(e => (e.username like s"%$query%") || (e.email like s"%$query%")).result
在这两个字之间要加上括号 ||
运营商。