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