首页 > 数据库技术 > 详细

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

时间:2020-01-11 18:46:56      阅读:203      评论:0      收藏:0      [点我收藏+]

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;

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

原文:https://www.cnblogs.com/rxbook/p/12180645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!