MySQL中,select <字段> from <表名> where <字段>的疑惑?

作者站长头像
站长
· 阅读数 7

在网友发的一段SQL中,因为在where后边跟条件时少了具体的条件,只剩下一个字段作为条件,而还是能查询出来数据,不过数据只能是数字开头的,而字母和0开头的会被过滤掉,具体情况如下图:

MySQL中,select <字段> from <表名> where <字段>的疑惑?

所以来问问大佬们,MySQL中的 select <字段> from <表名> where <字段> 这种情况,是具体以什么作为条件。

Oracle中会自动报错:MySQL中,select <字段> from <表名> where <字段>的疑惑?

回复
1个回答
avatar
test
2024-07-03

打开 MySQL 文档,找到有关 where 的介绍

answer image

译:如果给定了WHERE子句,则表明必须满足哪些条件才能选择行。where_condition是一个表达式,对于每条要选择的行来说,其值为真。如果没有WHERE子句,该语句会选择所有的记录。

在WHERE表达式中,你可以使用MySQL支持的任何函数和操作符,但聚合(组)函数除外。见第9.5节 "表达式 "和第12章 "函数和运算符"。

简单的说,就是 where 后面是一个表达式,你可以把这里的 uuid 当成是这样就当成是一个值,where 的条件就是值能转为 true 的时候成立。

见表达式章节:

answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容