gpt4 book ai didi

MySQL,等于还是不等于?

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

在MySQL上看到这个有点疑惑

SELECT 1='1x';

给我 1

鉴于

SELECT 1='2x';

给我 0(如预期的那样)

进行二进制比较时

SELECT CAST(1 AS BINARY)=CAST('1x' AS BINARY);

它给了我 0(也符合预期)

问题:如何阻止 MySQL 的这种行为?我希望“=”作为 100% 二进制相等。我不希望 MySQL 假设或猜测我可能想要比较的内容。

最佳答案

当比较字符串和数字时,MySQL 会自动进行转换。

所以字符串被转换为一个数字,它从左到右开始并尝试从中生成一个数字。

所以

'1x' => 1
'x1' => 0 //because it does not start with a number on the left

你无法改变这种行为。而且您无论如何都不应该比较不同的数据类型。所以这是你的错:)

关于MySQL,等于还是不等于?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609848/

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