gpt4 book ai didi

mysql - 无法使用来自另一表的相应数据正确更新一个 MYSQL 表

转载 作者:行者123 更新时间:2023-11-29 05:58:28 26 4
gpt4 key购买 nike

目前,我的任务是用 mkplace 中相应的 mkplace_id 值更新我的 mkindex 表中的 Place1 表。这看起来很简单,但我一定是误解了什么或遗漏了一些细节。

期望的结果是存储相应的 mkplace_id 代替 mkindex.Place1

我首先尝试对此进行变体:

更新 mkindex
INNER JOIN mkplace ON mkindex.Place1 = mkplace.mkplace_name
SET mkindex.Place1 = mkplace.mkplace_id

这没有达到我想要的效果。内部联接本身实际上匹配一些 Place1 = mkplace_name,但绝对不是所有预期的匹配。它返回了大约 117 个匹配项,而不是它应该返回的数十万个匹配项,而且它实际上没有将任何包含 mkindex.Place1 的行设置为 mkplace.mkplace_name

这让我尝试了一些其他方法,包括:

更新 mkindex
SET mkindex.Place1 = (
选择 mkplace_id
从 mkplace
WHERE mkindex.Place1 = mkplace.mkplace_name
限制 1
)

匹配 的数量似乎在正确的数量附近,但它只是将 Place1 的每个实例替换为 NULL。

我是否忽略了一些明显的东西?我也认为这是由于整理,所以我也尝试在查询之前运行它:

ALTER TABLE mkplace CONVERT TO CHARACTER SET latin1 整理 latin1_general_ci

任何指导将不胜感激,此时我比任何事情都更困惑。


mkindex (latin1_general_ci)

mkindex description


创建位置 (utf8_general_ci)

mkplace description

最佳答案

您的第一个查询看起来不错,我要冒险并建议可能只有 117 行 mkindex.Place1 实际上等于 mkplace.mkplace_name。机器不会说谎。您可以在每一列周围添加一个 TRIM(),但我怀疑这会有帮助。要了解您正在处理什么,请先尝试分析 mkindex。

SELECT 
mkindex.Place1,
COUNT(*)
FROM
mkindex
GROUP BY
mkindex.Place1;

关于mysql - 无法使用来自另一表的相应数据正确更新一个 MYSQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209239/

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