这两个SELECT陈述中哪一项是正确的?

问题描述

我有点困惑,不知道这两个SELECT语句中的哪一个是正确的

SELECT Value FROM visibility WHERE site_info LIKE '%site_is_down%';

OR

SELECT Value FROM visibility WHERE site_info = 'site_is_down';

由于我同时运行了这两种方法,因此得到相同的结果,但是我很有趣,哪个是正确的,因为Value列是VARCHAR数据类型,或者这两个SELECT都不正确吗?

结果集先运行SELECT

       Value
   1.   0

结果集运行第二SELECT

    Value
1.   0

解决方法

这两个语句做的不一样。

第一条语句对site_info包含 字符串'site_is_down'的行进行过滤。周围的'%'是通配符。因此它将与类似'It looks like site_is_down right now'的东西匹配。

具有相等条件的第二个查询对内容完全为 site_info的{​​{1}}进行过滤。

第一个查询还会返回第二个查询的所有内容-但事实并非如此。

哪种说法“正确”取决于您的实际要求。

,

如果这两个查询都对您有用,那么我将使用第二个查询,因为这是最简单的查询,并且运行速度更快。