gpt4 book ai didi

mysql - 比较MySQL JOIN 子句中的varchar 和integer

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

我有一个查询如下:

select q.question, e.filename
from question q
join actions a on a.FK_QId = q.PK_Id
join action_params ap on ap.FK_AId = a.PK_Id
join envfile e on e.FK_Qid = ap.value
where e.EnvType = 0

问题在于 JOIN ON 子句 e.FK_Qid = ap.value,其中 value 为 varchar,FK_QId > 是整数。我知道我必须对 CASTCONVERT 做一些事情,但我尝试失败了:

select q.`question`, e.filename
from question q
join actions a on a.FK_QId = q.PK_Id
join action_params ap on ap.FK_AId = a.PK_Id
join envfile e on CAST(e.FK_Qid as nvarchar(3)) = ap.value
where e.EnvType = 0

基本上,value 字段将包含“1”、“2”等字符串。因此,如果我可以进行字符串到字符串比较或整数到整数转换,那就没问题了。底线是 "1"= 1"2"= 2 等等。

编辑:CAST(e.FK_Qid as char3) = ap.value 也有效..

最佳答案

如果 ap.value 仅包含“1”、“2”...等值,那么您可以使用第一个查询,服务器将自行完成所有操作。所有值都将转换为数字,并且您的 ON 条件将起作用。

关于mysql - 比较MySQL JOIN 子句中的varchar 和integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11774311/

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