我有车辆的vin数字数据库。搜索在数据库中使用*作为通配符
有些人有*
作为一个字符,因为它可以是任何数字或字母。然而有些是特定的。
E.g.
VF1***HFX**8*****
我现在正在寻找一个字符串,将允许*
在表中是一个通配符。
E.g.如果有人搜索Tusk
或Task
它会在数据库中找到T*sk
。
在C#
我有车辆的vin数字数据库。搜索在数据库中使用*作为通配符
有些人有*
作为一个字符,因为它可以是任何数字或字母。然而有些是特定的。
E.g.
VF1***HFX**8*****
我现在正在寻找一个字符串,将允许*
在表中是一个通配符。
E.g.如果有人搜索Tusk
或Task
它会在数据库中找到T*sk
。
在C#
不知道你什么SQL服务器,但希望这适用于任何(关于MSSQL测试)。
如果您查看LIKE的文档,您会发现需要的通配符是_
(下划线)。一般来说,SQL中的操作符可以同时使用(即field LIKE constant
和constant LIKE field
都可以使用)。所以,不知道你的表结构(这将是非常有帮助的实际),你的查询会是这个样子:
SELECT * FROM Vehicles WHERE 'V123456789' LIKE REPLACE(Vehicles.Vin,'*','_')
我不知道有关性能在这里,但希望这应该让你在开始正确的方向。
优秀,它的工作,谢谢 – Scott 2014-11-26 22:27:22
从[这里]开始(http://stackoverflow.com/help/how-to-ask) – 2014-11-23 21:05:15
对于那种倒转的通配符使用,我认为你必须为DB中的每个元素编写你自己的比较器因为您没有将搜索字符串与DB数据进行比较,而是将DB数据与您的搜索字符串进行比较。 – Wolf5 2014-11-23 21:07:28
我希望有一种搜索条目和*搜索框中的每个字符条目。 – Scott 2014-11-23 21:25:03