2014-11-23 51 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