首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有通配符的SELECT返回0行

问没有通配符的SELECT返回0行
EN

Database Administration用户
提问于 2016-11-08 18:39:11
回答 1查看 130关注 0票数 1

由于某些原因,带有AND子句的SELECT查询显示出一些奇怪的行为。当我知道有匹配时,它返回零行。如果我删除其中的任何一个条款,它是有效的。或者,最奇怪的是,如果我将通配符添加到字符串的末尾以进行匹配,它将返回预期的结果。即使在列数据的末尾没有任何额外的字节。

示威:

代码语言:javascript
复制
SELECT HEX(type),
       type,
       category 
  FROM cats 
 WHERE `category` = 10 AND 
       `type` LIKE "Furry";

Empty set (0.07 sec)

但

代码语言:javascript
复制
SELECT HEX(type),type,category FROM cats WHERE `type` LIKE "Furry";
+----------------------------------+------------------------+----------+
| HEX(type)                        | type                   | category |
+----------------------------------+------------------------+----------+
| 4675727279                       | Furry                  |       10 |
...

和

代码语言:javascript
复制
SELECT HEX(type),type,category FROM cats WHERE `category`=10 AND `type` LIKE "Furry%";
+----------------------------------+------------------------+----------+
| HEX(type)                        | type                   | category |
+----------------------------------+------------------------+----------+
| 4675727279                       | Furry                  |       10 |
...

我在这里错过了什么?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2016-11-11 21:28:54

根据执行计划和数据分布,MySQL将决定扫描表或索引之一以获得所需的数据。

如果要从索引中读取数据,并且索引已损坏,则有可能不返回任何数据或错误数据。

优化表将重新构建表及其索引。因此,如果索引已损坏,则在优化后将对其进行修复。

HTH

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/154631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档