【问题标题】:Search uses * in database as a wildcard搜索使用数据库中的 *​​ 作为通配符
【发布时间】:2014-11-23 21:02:08
【问题描述】:

我有一个车辆 vin 号码的数据库。

有些将* 作为字符,因为它可以是任何数字或字母。但是有些是特定的。

例如

VF1***HFX**8*****

我现在正在寻找一个允许表中的* 成为通配符的字符串。

例如如果有人搜索TuskTask,它将在数据库中找到T*sk

在 C# 中

【问题讨论】:

  • here开始
  • 对于这种反向通配符的使用,我认为您必须为数据库中的每个元素编写自己的比较器,因为您不是将搜索字符串与数据库数据进行比较,而是将数据库数据与您的搜索字符串。
  • 我希望有一种方法可以在搜索框中的每个字符条目上搜索条目和 *。

标签: c# search wildcard reverse


【解决方案1】:

不确定您使用的是什么 SQL 服务器,但希望这适用于任何 SQL 服务器(在 MSSQL 上测试)。

如果您查看LIKE 的文档,您会看到您需要的通配符是_(下划线)。 SQL 中的运算符通常可以两种方式使用(即field LIKE constantconstant LIKE field 都可以使用)。因此,在不了解您的表结构(这实际上很有帮助)的情况下,您的查询将如下所示:

SELECT * FROM Vehicles WHERE 'V123456789' LIKE REPLACE(Vehicles.Vin,'*','_')

我不确定这里的表现,但希望这能让你朝着正确的方向开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2012-12-18
    • 2014-03-02
    • 2017-09-16
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多