【发布时间】:2019-08-02 01:05:11
【问题描述】:
我有一列包含一个 varchar 数组,以及一个我想与该列匹配的搜索字符串列表。如果任何搜索字符串与列字符串中的任何子字符串匹配,我想返回该行。
例如,如果列包含:
row 1: ['butter', 'water', 'eggs']
row 2: ['apples', 'oranges']
row 3: ['chubby', 'skinny']
我的搜索字符串是:
Set("ter", "hub")
我希望我的过滤结果包含第 1 行和第 3 行,但不包含第 2 行。
如果我用普通的 Scala 写这个,我会这样做:
val rows = [the rows containing my column]
val search = Set("ter", "hub")
rows.filter(r => search.exists(se => r.myColumn.exists(s => s.contains(se))))
在 Slick 中是否有某种方法可以在返回结果之前在 DB 端完成过滤? LIKE 和 ANY 的某种组合,也许吧?首先,我对在 SQL 中针对另一个数组过滤数组的机制有点模糊。
【问题讨论】:
标签: slick