我有車輛的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