今天在网上找判断记录是否存在的语句,大多数推荐的是使用if not exists(select * from table where conditions)这样的方法,碰巧这个方法在MySQL中行不通,于是我采用了网上推荐的另一种方法,"select isnull((select * from table where conditions),0)",但是在MySQL中运行还是会提示语法错误,经过查找,我发现在MySQL中isnull方法有另外的用法,主要用于作为查询条件筛选出对应列为空的行,例如
作用是选出device表中device_state为空的行。当使用isnull函数时,提示参数只有一个表达式。
而ifnull则替代了网上的isnull函数的作用,当使用ifnull函数时,MySQL的提示是ifnull(expr1,expr2),其意为执行expr1的操作,如果返回值为空,显示expr2的值,如果返回值不为空,显示返回值。示例:
当然,我的数据库表中是没有这一条数据的,于是会返回:
但是需要注意,expr1返回值不能有多个,如果有多个,MySQL会提示错误号1241的错误: