gpt4 book ai didi

mysql - WHERE 子句中带有 substr 的 SELECT 语句

转载 作者:可可西里 更新时间:2023-11-01 06:31:31 26 4
gpt4 key购买 nike

我这里有包含三个字段的示例表。

TableA

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

FieldA 的固定长度为 9。我没有设计这个表,一些应用程序已经在使用它。

我想根据 FieldA 的条件选择 FieldBFieldC

使用这条sql语句:

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

我无法达到我想要的结果。当我尝试使用 12 的 paramA 值和 '' 的 paramB 值进行搜索时,我得到了 2 结果:

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

因为它显然与 12% 匹配,而这不是我想要的。我希望参数应该匹配字符串的正确索引。

如果我搜索 paramA = '12'paramB = '' 那么它应该没有结果。要获取字段(FieldBFieldC),我需要 paramA = '123'paramB = '456 的正确值' 所以它将返回 XYZJohn。如果我想返回 James,那么我必须提供 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 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9628460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com