跳到主要内容
版本:2.7.x

Exist方法可以更高效地检索所给的Where条件数据是否存在,而不是查询完整的数据结果后返回。

方法定义:

func (m *Model) Exist(where ...interface{}) (bool, error)

示例SQL

这是后续示例代码中用到的MySQL表结构。

CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

使用示例

查询完整数据:

// SELECT * FROM `user` WHERE (id > 1) AND `deleted_at`=0
g.Model("user").Where("id > ?", 1).All()

使用Exist方法:

// SELECT 1 FROM `user` WHERE (id > 1) AND `deleted_at`=0 LIMIT 1
g.Model("user").Where("id > ?", 1).Exist()

可以看到底层是使用SELECT 1来查询结果,即如果结果存在则返回1,否则什么也不返回。