gpt4 book ai didi

MySQL 搜索 INT 列返回错误结果

转载 作者:行者123 更新时间:2023-11-29 04:58:59 24 4
gpt4 key购买 nike

我发现 MySQL 在搜索 INT 列时返回奇怪的结果。

一)

SELECT *
FROM `sellers`
WHERE `seller_key` = '1'

使用 key 1 返回卖家。

二)

SELECT * 
FROM `sellers`
WHERE `seller_key` = '1sdjhksadhak'

使用 key 1 返回卖家。

c)

SELECT * 
FROM `sellers`
WHERE `seller_key` = '1adlksajdkj187987'

使用 key 1 返回卖家。

d)

SELECT * 
FROM `sellers`
WHERE `seller_key` = 'adlksajdkj187987'

不返回任何东西。

为什么 b 和 c 返回一个结果?有没有办法让搜索更严格?

最佳答案

您正在对数字列进行比较。

为此,mySQL 需要自动将字符串转换为数字。

转换过程使用任何可用于整数值的东西,从左侧开始,并丢弃其他所有东西。

这是一个突出显示行为的示例:

SELECT CAST( '1adlksajdkj187987' TO unsigned)

将返回 1:

最简单的解决方案是不使用引号:

SELECT *
FROM `sellers`
WHERE `seller_key` = 1

我想如果在 traditional mode. 中运行 mySQL 会在这里抛出错误

mySQL 理论给感兴趣的人:

关于MySQL 搜索 INT 列返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684289/

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