当前位置: 首页 > 面试题库 >

mysql查询显示错误结果

龚寂弦
2023-03-14
问题内容

我有一个数据库表看起来像这样

+======+===========+============+
|  ID  | user Name |user surname|
+======+===========+============+
| 100  |  name     |  surname   |
| 101  |  name     |  surname   |
| 102  |  name     |  surname   |
+===============================+

当我运行此查询时,应该不显示任何行,因为不存在具有101foo2value的行:

SELECT * FROM tableName WHERE ID =‘101foo2’

我得到的结果具有相同的ID,但没有foo2单词

+======+===========+============+
|  ID  | user Name |user surname|
+======+===========+============+
| 101  |  name     |  surname   |
+===============================+

101如果我的查询是如何显示具有ID的行ID = '101foo2'


问题答案:

您正在混合类型。
ID是一个整数(或数字)。您正在将其与字符串进行比较。因此,MySQL需要确定用于比较的类型。使用什么类型?好吧,一串?不,一个数字。字符串将使用前导数字转换为数字。因此,它变得与之101匹配。

您实际上应该只将数字与数字进行比较,而将字符串与字符串进行比较。您可以尝试将代码编写为:

SELECT * FROM tableName WHERE ID = 101foo2

但是,您会得到一个错误。另一种可能性是强制转换为字符串:

SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'


 类似资料:
  • 当我在MySQL Workbench中查询一个表时,没有显示任何结果,结果部分只是空白,没有网格或任何东西。然而,如果我导出数据,它就在那里。直到几天前,一切都很顺利。 查询设置: 最大长度=65536 没有查询工作,一个例子将是

  • 我的数据库中只有大约16000个节点,当我匹配n返回n时,我从来没有得到任何图回来,任何原因或如何修复?

  • 问题内容: 我有一些简单的查询: 我想你现在结果如何。 我要做的是根据查询结果中显示的数据量显示一些序号。它就像(这并不意味着我要显示ID)。我想要的结果是: 我该怎么做呢? 提前致谢 问题答案:

  • 问题内容: 我有这个 MySQL 查询 得到这个错误: 我的表架构如下: 而且我不明白错误是从哪里来的。有任何想法吗? 问题答案: 如手册中所述: 以前,逗号运算符()和都具有相同的优先级,因此join表达式被解释为。现在具有更高的优先级,因此该表达式被解释为。此更改会影响使用子句的语句,因为该子句只能引用联接操作数中的列,并且优先级的更改会更改对这些操作数的解释。 例子: 以前,由于as的隐式分

  • 问题内容: 这是一个时间表,它的作用是显示前一天的时间表以及谁预定了每个时段(这是针对广播电台的。) 目前,它显示谁按时间顺序预订了每个时段,但是我想说每个结果旁边的时间。查询输出24行(从午夜到23:00),我想说的是每个插槽旁边的(00:00,01:00,02:00,03:00… 21:00,22 :00,依此类推。) 这是我当前的代码: 你能帮我吗? 问题答案: 我认为我们都在努力解决一个非

  • 问题内容: 所以我创建了一个集成脚本,但是由于某种原因它没有显示出正确的结果。我的查询是 结果中出乎意料的一行之一是这个 ID为11的组具有display_style_priority 2000而不是5200。它应显示具有display_style_priority 5200的用户组ID。这是该用户所在的排名最高的组。有人可以指出我做错了什么。 问题答案: 尝试将GROUP BY更改为 其他大多数