如何使用 slick 中的 like 运算符在多列中进行搜索?
How to search in multiple columns using the like operator in slick?
我想从数据库中获取用户名或电子邮件地址中包含单词 foo
的所有用户。 Slick 是怎么写的3.x?
select * from users where username like '%foo%' or email like '%foo%';
如果你已经定义了一个用户table,那么使用table用户的查询对象,你可以通过以下方式实现:
// 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
假设 query
是搜索字符串:这确实有效:
Users.filter(e => (e.username like s"%$query%") || (e.email like s"%$query%")).result
||
运算符之间需要括号。
我想从数据库中获取用户名或电子邮件地址中包含单词 foo
的所有用户。 Slick 是怎么写的3.x?
select * from users where username like '%foo%' or email like '%foo%';
如果你已经定义了一个用户table,那么使用table用户的查询对象,你可以通过以下方式实现:
// 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
假设 query
是搜索字符串:这确实有效:
Users.filter(e => (e.username like s"%$query%") || (e.email like s"%$query%")).result
||
运算符之间需要括号。