在哪里使用IN-operator但是启动而不是完全匹配

时间:2014-03-29 23:39:37

标签: mysql sql

我有一张桌子。

[ I D  ]  [ n a m e ] [ 2 ID]
310000    Kikiriki    100001
310010    Mandalina   100002
210000    Keyboard    200001
310020    Maouse      100003
012001    PC          NULL

使用SELECT * FROM Table WHERE [2 ID] IN ('310000','012001')我只得到310000和012001的结果。我需要所有ID的结果,以310%或012%开头。

AND Mat_FinDok_KontoPr2 like '310%'
AND Mat_FinDok_KontoPr2 like '012%'
AND Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_TipDok LIKE '000005%'
AND Mat_FinDok_DataDok BETWEEN '2014-01-01' AND '2014-12-31'

Result 0 Rows

并使用此

AND mat_findok.Mat_FinDok_KontoPr2 IN ('310000', '012001')
AND mat_findok.Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_Dobavuvac LIKE '%'
AND Mat_FinDok_TipDok LIKE '000005%'
AND Mat_FinDok_DataDok BETWEEN '2014-01-01' AND '2014-12-31'

Result 11 Rows

但在这里我没有012002的结果。

2 个答案:

答案 0 :(得分:3)

LIKE%通配符一起使用:

SELECT * FROM MyTable WHERE Id LIKE '310%' OR Id LIKE '012%'

T-SQL Documentation

MySQL Documentation

答案 1 :(得分:0)

然后你应该编写查询来获得你想要的东西:

SELECT *
FROM Table
WHERE id like '310%' or id like '012%';