gpt4 book ai didi

mysql - SQL忽略where条件中的字符串

转载 作者:行者123 更新时间:2023-11-29 07:23:30 24 4
gpt4 key购买 nike

为什么如果我在 where 条件末尾运行带有乱码的查询,它会错误地返回结果。示例:

SELECT * FROM contractor_table WHERE contractorID = '97sd'

我得到了 ID 为 97 的行,而我应该得不到任何结果。

最佳答案

这里发生的是,您正在将整数或其他数字类型的 contractorID 列与字符串文字 97sd 进行比较。这没有任何意义,因此 MySQL 根据其转换规则尝试首先将 97sd 转换为整数。考虑以下查询的结果:

SELECT CAST('97sd' AS unsigned);

事实上,这只输出整数 97。因此,在实践中,这意味着以整数开头的字符串文字末尾的“乱码”将被 MySQL 忽略。

但这里的最佳做法是始终将列与正确的文字类型进行比较。因此,请始终使用以下版本以获得最佳结果:

SELECT * FROM contractor_table WHERE contractorID = 97;

关于mysql - SQL忽略where条件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55036843/

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