我有點困惑於如何做這件事情。 我有這些值的數據庫表:SQL LIKE(反向)
| id | file_type | code | position |
-------------------------------------
| 1 | Order | SO | 1 |
| 2 | Order | 1-SO | 7 |
| 3 | Order | 1_SO | 7 |
現在,我想要得到的位置和我的文件名的文件類型,所以我想出了這個查詢:
SET @FileName = '1-SO1234567890.pdf'
SELECT *
FROM tbl_FileTypes
WHERE CHARINDEX(code,@FileName)> 0
可悲的是,我在這裏得到兩個結果,我只需要具有「1-SO」結果的數據。
| id | file_type | code | position |
-------------------------------------
| 1 | Order | SO | 1 |
| 2 | Order | 1-SO | 7 |
我相信我的WHERE子句會導致這種情況發生。 有沒有更好的方式讓我獲得我想要的結果?
非常感謝您提前。
我是否嚴重誤解了某些東西,或者應該是「SET @FileName ='1-SO1234567890.pdf''? – LittleBobbyTables 2013-03-06 14:42:54
哎呀!我的壞,我現在糾正它。謝謝LittleBobbyTables。 – SyntaxError 2013-03-06 14:45:05
你是測試它'StartsWith'的代碼,還是應該是最長的匹配代碼或其他東西?基本上,目前還不清楚爲什麼'1-SO'比'SO'更好匹配 - 請澄清。 – 2013-03-06 14:45:49