gpt4 book ai didi

Mysql Like + Wild Card 与等于运算符

转载 作者:行者123 更新时间:2023-11-29 04:13:21 26 4
gpt4 key购买 nike

我最近刚刚修复了一些代码中的错误,希望有人能向我解释错误发生的原因。

我有这样的查询:

SELECT * FROM my_table WHERE my_field=13

出乎意料的是,这会返回 my_field 等于 1313a 的行。修复很简单,我将查询更改为:

SELECT * FROM my_table WHERE my_field='13'

我的问题是,情况应该如此吗?我一直认为要返回类似的字段,您可以使用类似的东西:

SELECT * FROM my_table WHERE my_field LIKE '13%'

LIKE + 通配符与不带引号的等于运算符有什么区别?

最佳答案

此语句返回 my_field = '13a' 的行:

SELECT * FROM my_table WHERE my_field=13

因为MySQL在比较的时候进行了字符串到数字的类型转换,将'13a'变成了13。更多关于 in this documentation page .

添加引号会将整数转换为字符串,因此 MySQL 仅执行字符串比较。显然,'13'不能等于'13a'

LIKE 子句总是执行字符串比较(除非任一操作数为 NULL,在这种情况下结果为 NULL)。

关于Mysql Like + Wild Card 与等于运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609073/

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