gpt4 book ai didi

mysql - 通过数据类型不匹配的两列连接两个表

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

我正在尝试将 MySQL 数据库的两个表一两列连接起来:

SELECT ol.utdate, ol.session, dl.utdate, dl.dsession FROM observation_log ol 
LEFT OUTER JOIN diary_log dl ON (ol.utdate = dl.utdate AND ol.session = dl.dsession);

问题是 ol.session 是一个 CHAR 而 dl.dsession 是一个 TINYINT(4)。两者的对应关系是字母表中字母的整数:

=======================
ol.session||dl.dsession
=======================
A ||1
B ||2
C ||3
...
=======================

如何将 ol.session 或 dl.dsession 转换(映射或转换,不确定此处使用的动词是否正确)为字母或整数?

谢谢,艾娜。

最佳答案

您可以使用 MySQL ASCII()ol.session 列中的大写字母转换为应与 dl.session 列相匹配的数字的函数:

SELECT
ol.utdate,
ol.session,
dl.utdate,
dl.dsession
FROM observation_log ol
LEFT OUTER JOIN diary_log dl
ON ol.utdate = ol.utdate AND
ASCII(ol.session) - 64 = dl.dsession

请注意,ASCII('A') 返回 65,ASCII('B') 返回 66,依此类推。因此,如果我们从 ASCII(ol.session) 中减去 64,我们就可以对齐。

关于mysql - 通过数据类型不匹配的两列连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43796616/

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