gpt4 book ai didi

MySQL LEFT JOIN 查询行为异常

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:09 24 4
gpt4 key购买 nike

Mysql LEFT JOIN 查询返回奇怪的结果。当右侧的 ON 条件“部分”与左侧匹配时,查询返回一条记录。

SELECT s.id sid
, s.points sCredits
, s.ghs
, s.usd
, s.africa
, o.id oid
, o.user_id
, o.item_id
FROM pi21o_zoo_item s
LEFT
JOIN pi21o_logos_orders o
ON s.id = o.item_id
AND o.user_id = '268'
WHERE s.id = '268'

问题是当 s.id = '268'o.item_id = '268-AGW' 时查询返回一条记录

最佳答案

你的问题是,当你比较一个整数 (s.id) 和一个字符串 (o.item_id) 时,MySQL 会自动将字符串转换为整数(参见manual)。由于 '268-AGW' 以整数开头,它被成功转换为 268,然后匹配 s.id 值。要解决此问题,请将 s.id 值转换为字符串,即写入

(CAST(`s`.`id` AS CHAR) = `o`.`item_id`) AND (`o`.`user_id` = '268') 

关于MySQL LEFT JOIN 查询行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408556/

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