mysql – 在WHERE子句中使用substr的SELECT語句


http://www.voidcn.com/article/p-gmvusbbi-bub.html

我這里有三個字段的樣本表.

 

 

TableA

    FieldA        FieldB        FieldC
    ======================================
    123XYZ456     XYZ           John
    124NNN333     NNN           Jenny
    232XPT124     XPT           Jade
    456XXX345     XXX           James

FieldA的固定長度為9.我沒有設計這個表,有些應用程序已經在使用它.

我想選擇具有針對FieldA的條件的FieldB和FieldC.

使用這個sql語句:

 

SELECT FieldB, FieldC FROM TableA WHERE FieldA LIKE Concat(@paramA, '%', @paramB)

我無法達到我想要的結果.當我嘗試使用paramA值12和paramB值”進行搜索時,我得到2個結果:

 

FieldA        FieldB        FieldC
    ======================================
    123XXX456     XXX           John
    124XXX333     XXX           Jenny

因為很明顯它與12%匹配,這不是我想要的.我希望params應該匹配字符串的正確索引.

如果我搜索paramA =’12’和paramB =”那么它應該沒有結果.要獲取字段(FieldB,FieldC),我需要正確的paramA =’123’和paramB =’456’的值,因此它將返回XYZ和John.如果我想要歸還詹姆斯那么我必須給paramA =’456’和paramB =’345′

我怎樣才能為此正確構建SQL語句?任何的想法?謝謝.

 
使用  LEFT()和  RIGHT()

 

 

SELECT FieldB, FieldC FROM TableA WHERE LEFT(FieldA,3) = @paramA AND RIGHT(FieldA,3) = @paramB;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM