0

我正在尝试使用 INNER JOIN 加入 2 个表,但问题是我想使用 REPLACE 关键字,因为在另一个表中,文本中有一个额外的字符。我将查询写为:

SELECT
    keeper_details.*,
    keepers.*
FROM
    keeper_details
    INNER JOIN keepers ON keeper_details.cphh = keepers.CPHH SET keepers.CPHH = REPLACE(keepers.CPHH,"/","")

但我收到一个错误消息:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'SET keepers.CPHH = REPLACE(keepers.CPHH,"/","") 附近使用正确的语法

我的共同文字一直keeper table(CPHH) = "XXXXXXXX"keeper_details table(CPHH) = XX/XXX/XXXX

我希望我很清楚。我不知道我哪里做错了!任何建议都会有很大帮助!提前致谢!

4

1 回答 1

4

这应该足够了:

SELECT keeper_details.*
       , keepers.*
FROM keeper_details
INNER JOIN keepers
on keeper_details.cphh = REPLACE(keepers.CPHH,"/","");

当您使用这个on词时,您是在告诉查询在连接两个表时使用什么作为“条件”。所以当你删除字符'/'时加入所有应该没问题。

我还建议您在使用字符串值时使用单引号:

SELECT keeper_details.*
       , keepers.*
FROM keeper_details
INNER JOIN keepers
on keeper_details.CPHH = REPLACE(keepers.CPHH,'/','')
于 2020-02-10T06:23:13.580 回答