zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    光与爱的世界
    [家里训练20_02_28]ABC
    [爬虫]美术作业,爬虫和百度图片
    [机器学习]第六、七周记录
    数据类型和对象
    设备对象
    进程、内存线程
    创建符号链接
    SCM管理器
    Nt内核函数原型and中文
  • 原文地址:https://www.cnblogs.com/rxbook/p/12180645.html
Copyright © 2011-2022 走看看