mysql locate函数字段模糊搜索 IF函数使用

 

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

 

locate()
这里我讲解的并不是像我们经常使用的like的方法使用效果,我是希望这个函数能使用在字段里面,配合其他函数一起使用
比如:

id shippingName orderSn
1 海外仓-海运 1
2 海外仓-直发 2
3 海外仓-直发 3
4 海外仓-空运 4


现在我们就是想通过 locate 函数来区别出是非直发和直发两种,我们需要怎么写呢?

select IF (
locate(
'直发',
shippingName
) > 0,
2,
1
)
from table

 

posted @ 2020-03-26 17:11  KOBE-Jason  阅读(869)  评论(0编辑  收藏  举报