当我在MySQL中运行两个语句时,我感到很惊讶

SELECT *
FROM jobs
WHERE salary_max = 1000

SELECT *
FROM jobs
WHERE salary_max = '1000'

我只是想知道为什么MySQL可以处理文本和数字相同,并返回相同的结果。 你能帮我解释一下吗?

===============>>#1 票数:3 已采纳

MySQL自动转换表达式中不兼容的类型以使它们兼容。 它在MySQL文档中讨论过。

===============>>#2 票数:2

当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。 某些转换是隐式发生的。 例如,MySQL会根据需要自动将数字转换为字符串,反之亦然。

mysql> SELECT 1+'1';
    -> 2
mysql> SELECT CONCAT(2,' test');
    -> '2 test'

有关进一步的规则和说明,请参阅mysql文档

http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html

  ask by hungneox translate from so

未解决问题?本站智能推荐:

3回复

来自WHERE子句中整数的MySQL第一位数字

我正在四处寻找该解决方案,但没有任何进展。 我有类别和子类别。 它们用整数表示,如下所示: ...等等。 因此,要搜索高级类别并使其带有子类别,我需要搜索第一位数。 首先猜测是将其转换为字符串并搜索其子字符串。 有没有更简洁的方法?
1回复

where子句中的子查询(mysql)

用户ID输入广告系列后(报告11-15),查询会计算存款数量。 “send_date”是用户ID输入广告系列的日期。 但是,如果用户ID进一步推进到另一组广告系列(报告16-20),则在进入第二组广告系列(16-20)后进行的存款不应计入第一组广告系列(11 - 15)查询总计。 例
2回复

如何在mysql where子句中使用SUM?

我想基于查询中一列的总和获得结果。 我有两个表:League_Squads和League_experience。 我想选择有经验的小队成绩。 下面的查询将所有班级放在梯子上,并根据其总经验按降序排列。 我想对其进行修改,以使其仅获得实际有经验的小队。 如果我使用下面的查询,则
6回复

是否可以在MySQL的where子句中使用当前的dayname?

我试图在MySQL的基础上创建一个视图。 我正在创建一个表来跟踪基于星期几的任务。 例如,某些任务将在每周二发生,一些将在周三和周五发生,等等。 我决定在每周的每一天为表格设置一个列。 如果需要在那一天执行任务,我将在列中存储1,否则它将为0.表格如下所示: 我想创建一个SE
2回复

MySQL-WHERE子句中的多个等效项

我想知道MySQL中以下两个WHERE子句之间是否有区别: 与 在下面的SQLFiddle中,这两个查询的结果不同: http ://sqlfiddle.com/#!2/725396/3
3回复

别名在where子句中引起错误-MySQL

我的SQL代码: 错误:#1054-“ where子句”中的未知列“ Okudum” 我写 但仍然在查询中出现错误。
1回复

Mysql子查询结果在where子句中

我正在尝试获取子查询销售的结果并在WHERE子句中使用它...我想排除等于1的销售额 有没有办法做到这一点 ?
2回复

MySQL如何根据WHERE子句中的参数顺序获取结果

我有以下查询语句: 它的作用是返回与坐标(lat,lon)相关联的adr.road_adr 。 它返回的内容默认由idelm_na排序。 有没有办法重写这个代码,它会根据OR参数/参数的顺序返回结果? 我可以使用UNION ALL和单独的SELECT语句,但我认为这太慢了。 我希
3回复

MySQL重用WHERE子句中的计算值

我正在尝试使用查询的WHERE部分中的SELECT“变量” 测试中收到的结果。 有什么想法无需重新进行计算或在WHERE中再次执行该操作怎么办? 到目前为止,这就是我设法使其工作的方式。
2回复

MySql'min'在'WHERE'子句中

我有这个查询 我如何在mi < 10类似于