几周以来我一直在努力解决这个问题,但我找不到解决方案。
我举一个例子来说明这一点:假设我们有这个表( FILTER_TABLE
):
我会找到一种方法来进行 SQL 查询,以便我可以为所有与模式 foo* 匹配的字符串选择 ID 为 1 的行,为 *bar 选择 ID 为 2 的行,为所有内容选择 ID 为 3 的行。
在伪 SQL 中:
SELECT ID
FROM FILTER_TABLE
WHERE FILTER MATCHES "fooString"
它应该返回 1。
我知道 MATCHES
不幸的是,条件不存在。但这就是我想要的。我的 SQL 知识非常有限,但据我所知,没有办法得到我想要的。
你有什么提示吗?
最佳答案
您无需指定所使用的 SQL 实现,但在 T-SQL 中,您可以使用 REPLACE
语句来使用 SQL 通配符 %
:
SELECT ID
FROM FILTER_TABLE
WHERE "fooString" LIKE REPLACE(FILTER, '*', '%')
关于SQL WHERE 匹配语句(不是 LIKE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75889305/