SQL 使用大于/小于与 like 和通配符



我目前对如何实现某件事有点困惑。基本上我有一个嵌入式数据库(在性能方面,它真的很讨厌 JOIN)以及向搜索字段添加通配符机制的要求。目前,搜索字段允许用户输入日期和一些金额/收入,这些日期和一些金额/收入使用以下内容进行匹配: SELECT * FROM table where date >= '{0}' AND date <= '{1}'

编辑:这是因为.NET适配器在运行时生成SQL,并且可以使用AND子句的各种组合。可能是用户只输入一个{0}值,可能是他只输入一个{1},可能是他输入两个,可能是他不输入任何。因此,除非我开始一些认真的正则表达式,否则 BETWEEN 可悲地会平淡无奇。

我想使用关键字 LIKE 来实现以下内容:

SELECT * FROM table where date >= LIKE '{0}' AND date <= LIKE '{1}'{0}就像"2015.01*"

我知道日期可能有点多,但是使用金额或收入之类的东西可以吗?如果是这样,正确的语法是什么?谷歌不是我的朋友...

提前感谢您的所有帮助!

LIKE正在执行正则表达式匹配,例如LIKE '%a'匹配"1a",但也匹配"2a"。由此可以清楚地看出,>= LIKE '...'是不可能的。

你可以做的是从日期构建一个字符串,这样你就有了例如"YYYYMMDD",然后你可以很容易地与LIKE 'YYYYMM%'>= 'YYYYMM'进行比较。

我仍然不明白为什么您不只使用您已经提出的SELECT * FROM table where date >= '{0}' AND date <= '{1}'(或使用between查询的变体)。

相关内容

  • 没有找到相关文章

最新更新