2014-11-23 97 views
0

我有车辆的vin数字数据库。搜索在数据库中使用*作为通配符

有些人有*作为一个字符,因为它可以是任何数字或字母。然而有些是特定的。

E.g.

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

我现在正在寻找一个字符串,将允许*在表中是一个通配符。

E.g.如果有人搜索TuskTask它会在数据库中找到T*sk

在C#

+0

从[这里]开始(http://stackoverflow.com/help/how-to-ask) – 2014-11-23 21:05:15

+1

对于那种倒转的通配符使用,我认为你必须为DB中的每个元素编写你自己的比较器因为您没有将搜索字符串与DB数据进行比较,而是将DB数据与您的搜索字符串进行比较。 – Wolf5 2014-11-23 21:07:28

+0

我希望有一种搜索条目和*搜索框中的每个字符条目。 – Scott 2014-11-23 21:25:03

回答

2

不知道你什么SQL服务器,但希望这适用于任何(关于MSSQL测试)。

如果您查看LIKE的文档,您会发现需要的通配符是_(下划线)。一般来说,SQL中的操作符可以同时使用(即field LIKE constantconstant LIKE field都可以使用)。所以,不知道你的表结构(这将是非常有帮助的实际),你的查询会是这个样子:

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

我不知道有关性能在这里,但希望这应该让你在开始正确的方向。

+0

优秀,它的工作,谢谢 – Scott 2014-11-26 22:27:22