首页
学习
活动
专区
圈层
工具
发布

SQL 判断是否“存在”?99% 的人还在写错!

还在用 COUNT(*) 判断数据存不存在?学会这招,性能提升 10 倍!今天咱们聊一个超实用的话题。...相信很多刚接触数据库的朋友,想要判断某条数据是否存在时,第一反应就是会写出类似下面的 SQL:SELECT COUNT(*) FROM users WHERE email = 'test@example.com...假设我们用 Go + MySQL 开发一个用户系统:基础用法package mainimport ( "database/sql" "fmt" "log" _ "github.com.../go-sql-driver/mysql")// 检查邮箱是否已存在func CheckEmailExists(db *sql.DB, email string) (bool, error) {...数据有没有,存不存在,直接用 exists要是必须知道数量有多少,那么才用 count如果这篇文章对你有所帮助,还望帮忙点个赞支持一下哈~

84210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL判断是否

    根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要select count(*)呢?...目前多数人的写法 多次 review 代码时,发现如现现象: 业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。...(params); if ( nums > 0 ) { //当存在时,执行这里的代码 } else { //当不存在时,执行这里的代码 } 是不是感觉很OK,没有什么问题...= NULL ) { //当存在时,执行这里的代码 } else { //当不存在时,执行这里的代码 } SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回...,不要再继续查找还有多少条了 业务代码中直接判断是否非空即可 总结 根据查询条件查出来的条数越多,性能提升的越明显,在某些情况下,还可以减少联合索引的创建。

    84030

    判断单链表是否存在环

    周末参加完美世界校园招聘中就有一道判断单链表是否有环的编程题。 写一个C/C++函数,来判断一个单链表是否具有环,如果存在环,则给出环的入口点。...现在需要解决的问题有以下两个: 如何判断一个链表是不是这类链表? 如果链表为存在环,如果找到环的入口点?...判断链表是否存在环,办法为: 设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇...= fast) { slow = slow->next; fast = fast->next; } return slow; } 判断两个单链表是否相交...比较好的方法有两个: 将其中一个链表首尾相连,检测另外一个链表是否存在环,如果存在,则两个链表相交,而检测出来的依赖环入口即为相交的第一个点。

    3.9K90
    领券