Home  >  Article  >  Database  >  MySQL字符串值的实际应用

MySQL字符串值的实际应用

WBOY
WBOYOriginal
2016-06-07 16:14:091078browse

我们今天主要和大家一起讨论的是MySQL字符串值与用其实际表达式来对函数 ifnull()与if() [类似ms sql server的isnull()]进行正确判断的实际操作步骤的介绍,以下就是正文的主要内容描述。 FNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它

我们今天主要和大家一起讨论的是MySQL字符串值与用其实际表达式来对函数 ifnull()与if() [类似ms sql server的isnull()]进行正确判断的实际操作步骤的介绍,以下就是正文的主要内容描述。

<ol class="dp-xml"><li class="alt"><span><span>FNULL(expr1,expr2) </span></span></li></ol>

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

<ol class="dp-xml">
<li class="alt">MySQL<span><span class="tag">></span><span> select IFNULL(1,0);  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 1  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IFNULL(0,10);  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 0  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IFNULL(1/0,10);  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 10  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IFNULL(1/0,’yes’);  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> ‘yes’  </span>
</li>
<li class="alt"><span>IF(expr1,expr2,expr3)  </span></li>
</ol>

如果expr1是TRUE(expr10且expr1NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。

<ol class="dp-xml">
<li class="alt">MySQL<span><span class="tag">></span><span> select IF(1</span><span class="tag">></span><span>2,2,3);  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 3  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IF(1</span><span class="tag"><span class="tag-name">2</span><span>,’yes’,'no’);  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> ‘yes’  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IF(strcmp(‘test’,'test1′),’yes’,'no’);  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> ‘no’ </span>
</li>
</ol>

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

<ol class="dp-xml">
<li class="alt">MySQL<span><span class="tag">></span><span> select IF(0.1,1,0);  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 0  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> select IF(0.1</span><span class="tag"><span class="tag">></span><span>0,1,0);  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> 1 </span>
</li>
</ol>

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

<ol class="dp-xml">
<li class="alt"><span><span>CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result …] [ELSE result] END  </span></span></li>
<li><span>CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END  </span></li>
</ol>

第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。

<ol class="dp-xml">
<li class="alt">MySQL<span><span class="tag">></span><span> SELECT CASE 1 WHEN 1 THEN “one” WHEN 2 THEN “two” ELSE “more” END;  </span></span>
</li>
<li>
<span>-</span><span class="tag">></span><span> “one”  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> SELECT CASE WHEN 1</span><span class="tag">></span><span>0 THEN “true” ELSE “false” END;  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> “true”  </span>
</li>
<li class="alt">MySQL<span class="tag">></span><span> SELECT CASE BINARY “B” when “a” then 1 when “b” then 2 END;  </span>
</li>
<li>
<span>-</span><span class="tag">></span><span> NULL </span>
</li>
</ol>

以上的相关内容就是对MySQL 字符串值/表达式判断函数ifnull()与if() [类似ms sql server的isnull()]的介绍,望你能有所收获。
 


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn