【发布时间】:2020-09-21 13:41:33
【问题描述】:
我想从数据库中获取所有用户名或电子邮件地址中包含单词foo 的用户。这是如何用 Slick 3.x 编写的?
select * from users where username like '%foo%' or email like '%foo%';
【问题讨论】:
我想从数据库中获取所有用户名或电子邮件地址中包含单词foo 的用户。这是如何用 Slick 3.x 编写的?
select * from users where username like '%foo%' or email like '%foo%';
【问题讨论】:
如果你已经定义了一个用户表,那么使用用户的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.org/doc/3.3.1/queries.html#sorting-and-filtering
【讨论】:
Users.filter(e => e.username like "%foo%" || e.email like "%foo%").result,但这也无法编译。
import slick.jdbc.MySQLProfile.api._,请查看medium.com/@kennajenifer1234/…
假设query 是搜索字符串:这确实有效:
Users.filter(e => (e.username like s"%$query%") || (e.email like s"%$query%")).result
|| 运算符之间需要括号。
【讨论】: