gpt4 book ai didi

php - MySQL 显示奇怪的结果

转载 作者:可可西里 更新时间:2023-11-01 06:31:06 25 4
gpt4 key购买 nike

我有一个名为 tabela1512823699024883 的表,如下所示: enter image description here

我在上面运行这样的查询:

SELECT * FROM tabela1512823699024883 WHERE `age` = 'male'

这个查询没有意义,因为 age 列是 int 类型,我在查询中寻找 string 值,但是MySQL 仍然不返回任何空行。这是查询返回的内容: enter image description here因此 age 行在返回的两行中都不包含 male 值。这怎么可能?

最佳答案

将字符串转换为整数类型时会出现同样的问题。

SELECT CAST('male' as SIGNED); #0
#or
SELECT CAST('male' as UNSIGNED); #0

但是,如果在字符串中提供了数字。

SELECT CAST('1234male' as UNSIGNED); #1234
#and
SELECT CAST('male1234' as UNSIGNED); #0

要解决此问题,请在列上使用 BINARY,这也会导致文本值区分大小写。

SELECT * FROM tabela1512823699024883 WHERE BINARY `age` = 'male';

或者使用不区分大小写的 BINARY 条件 CONVERT() 将值转换为所需的字符集,然后指定区分大小写的排序规则。 [sic]

SELECT * FROM tabela1512823699024883 WHERE CONVERT(BINARY `age` USING utf8) COLLATE utf8_general_ci = 'male';

关于php - MySQL 显示奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507750/

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