【问题标题】:SQL exact match within a pattern?模式中的 SQL 完全匹配?
【发布时间】:2026-02-23 11:10:02
【问题描述】:

我正在使用 qodbc(一个 quickbooks 数据库连接器)它使用类似 ODBC 的 sql 语言。

我想查找某个字段与某个模式匹配的所有记录,但我有轻微的偏差。

我的字段中的信息如下所示:

 321-......02/25/10
 321-1.....02/26/10
 321-2.....03/25/10
 321-3.....03/26/10
 322-......04/25/10
 322-1.....04/26/10
 322-2.....05/25/10
 322-3.....05/26/10

我希望我的查询只返回模式与第一个数字匹配的行。因此,如果用户搜索“321”,它将只显示看起来像 321 的记录,而不会显示具有 321-1 或 321-3 的记录。同样,如果用户搜索 321-1,您将不会看到 321。(这很简单)

我现在有

 LIKE '321%'

无论它们后面是否有点,这都会找到所有它们。尽管该字段具有应有的更多信息,但有没有一种方法可以将查询限制为仅具体信息。

(P.S. 我没有设置这个系统,在一个字段中看到两个数据点让我畏缩 如果我的标题不正确,我很抱歉,如果可以的话,建议一个新的标题。 )

【问题讨论】:

  • 你的问题我不清楚。你能发布预期的输出吗?
  • qodbc 中你能创建存储过程还是你所有的查询都是动态sql?
  • 在这种情况下为什么不使用“like '321-.%'”呢?
  • 用户输入 '321' 预期输出 321-......02/25/10
  • 我不认为它处理存储过程,要么我不知道如何使用文档,要么该部门非常缺乏。它谈到了不同的设置,但除了说它符合 ODBC 之外,并没有太多的语法

标签: sql quickbooks


【解决方案1】:

喜欢“321%”而不喜欢“321-%”

【讨论】:

  • 数据集是相同的,但仍会显示 321-1,321-2,321-3,这是不可以的