2013-11-26 14 views
0

我有記錄,像這樣的:MySQL的子只得到字符

RCV0001
RCV0002
RTN0003
RTN0004
SLE0005
RCV0006

我想查詢以「RCV開始記錄'只顯示記錄。

這是我到目前爲止已經試過:

select substring(documentnumber, 1) 
LIKE '%RCV%' 
from transactionheader 

但我沒有得到我想要的結果。有任何想法嗎?我很樂意爲您提供幫助。謝謝。

+4

您需要使用'RCV%' –

回答

4

將需要在WHERE語句

select documentnumber 
from transactionheader 
where documentnumber LIKE 'RCV%' 
+0

謝謝這就是我要找的! – Dunkey

+0

如果它適合你,請不要忘記接受答案:) –

0

您的原始查詢沒有WHERE因此,被選擇的條款都添加過濾器。另外,我會建議使用REGEXP。這是我重寫的例子。

SELECT substring(documentnumber, 1) 
FROM transaction header 
WHERE documentnumber REGEXP '^RCV' 
; 
1

您的查詢的選擇列表中的表達式返回一個布爾值,因此查詢將只爲表中的每一行返回0,1或NULL。

SELECT SUBSTRING(documentnumber, 1) LIKE '%RCV%' 
    FROM transactionheader 

對於表中的每一行,documentnumber的第一個字符將被檢查,看它是否包含字符串「RCV」,這絕不會是真的。查詢將爲每行返回0或NULL。


有多個查詢將返回以'RCV'開頭的文檔編號。這裏是一個例子:

SELECT h.documentnumber 
    FROM transactionheader h 
WHERE h.documentnumber LIKE 'RCV%' 

WHERE子句指定將在各行執行的條件測試,只有行該「滿足」謂詞將被返回。