gpt4 book ai didi

mysql - 使用 rlike 连接两个字符串

转载 作者:行者123 更新时间:2023-11-29 11:27:10 25 4
gpt4 key购买 nike

我正在 Col_ACol_B 列上连接表 Table_ATable_B。以下是一些测试样本值。

Table_A, Col_A
USA1FullCover
USAMainland
USA2Islands

Table_B, Col_B
USA
USA1
USA2

加入时,我需要精确匹配值“USA”,后跟数字。例如,连接结果应如下所示。

Col_A          Col_B
USA1FullCover USA1
USAMainland USA
USA2Island USA2

我正在尝试在 MySQL 中实现这一点。我尝试了 rlike 函数。但问题是,对于rlike,我无法完全匹配它们。

select
case when 'USA1FullCover' rlike 'USA' then 1 else 0 end;
#matches, but shouldn't

select
case when 'USA1FullCover' rlike 'USA1' then 1 else 0 end;
#matches, which is what I need/expect

select
case when 'USA1FullCover' rlike 'USA2' then 1 else 0 end;
#doesn't match, which is what I need/expect

我的问题是如何修复 rlike 以便第一种情况不会发生,即当 RHS 上没有数字时它不匹配?或者可以使用正则表达式吗?获取 LHS 的子字符串没有帮助,因为我们无法真正预先定义长度。

最佳答案

使用

col_A regexp '^USA[0-9]{1}.+$'

匹配 USA,后跟一位数字,后跟任何其他字符。

仅当存在这种模式时才加入

select a.*,b.*
from tableA a
join tableB b on
case when a.col_A regexp '^USA[0-9]{1}.+$' then substring(a.col_A,1,4) else '' end
= b.col_B

关于mysql - 使用 rlike 连接两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38014491/

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