我有記錄,像這樣的:MySQL的子只得到字符
RCV0001
RCV0002
RTN0003
RTN0004
SLE0005
RCV0006
我想查詢以「RCV開始記錄'只顯示記錄。
這是我到目前爲止已經試過:
select substring(documentnumber, 1)
LIKE '%RCV%'
from transactionheader
但我沒有得到我想要的結果。有任何想法嗎?我很樂意爲您提供幫助。謝謝。
我有記錄,像這樣的:MySQL的子只得到字符
RCV0001
RCV0002
RTN0003
RTN0004
SLE0005
RCV0006
我想查詢以「RCV開始記錄'只顯示記錄。
這是我到目前爲止已經試過:
select substring(documentnumber, 1)
LIKE '%RCV%'
from transactionheader
但我沒有得到我想要的結果。有任何想法嗎?我很樂意爲您提供幫助。謝謝。
將需要在WHERE語句
select documentnumber
from transactionheader
where documentnumber LIKE 'RCV%'
謝謝這就是我要找的! – Dunkey
如果它適合你,請不要忘記接受答案:) –
您的原始查詢沒有WHERE因此,被選擇的條款都添加過濾器。另外,我會建議使用REGEXP。這是我重寫的例子。
SELECT substring(documentnumber, 1)
FROM transaction header
WHERE documentnumber REGEXP '^RCV'
;
您的查詢的選擇列表中的表達式返回一個布爾值,因此查詢將只爲表中的每一行返回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
子句指定將在各行執行的條件測試,只有行該「滿足」謂詞將被返回。
您需要使用'RCV%' –