Mysql判断记录是否存在

最近在开发一个电商平台的时候,经常会遇到要判断表中是否存在某条记录,不存在,则插入。

判断记录是否存在的sql,不同的写法,也会有不同的性能。

  • select count(*) from tablename where col = ‘col‘;

这种方法性能上有些浪费,没必要把全部记录查出来。

  • select 1 from tablename where col = ‘col‘ limit 1;

执行这条sql语句,所影响的行数不是0就是1。

特别解释下limit 1,mysql在找到一条记录后就不会往下继续找了。性能提升很多。

结论:推荐第二种方式。

时间: 2024-11-09 01:57:35

Mysql判断记录是否存在的相关文章

mysql中判断记录是否存在方法比较【转】

把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入. 我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数.

mysql中判断记录是否存在方法比较

我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数. 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行

mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入

mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入 直接上代码 BEGIN #定义一个变量来保存该记录是否存在 declare num int; #这条sql,就是查询对应的记录有多少条,注意 into num 这两句话,就是把count(*) 查出的值,赋给到num中 select count(*) into num from t_count_view where TO_DAYS(now())=TO_DAYS(day); #接下来的就是判断了,注意,判断是否等于,只有一

在Linux(CentOS)上安装MySql详细记录

前记:  毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+Tomcat(或其他容器)+Mysql这套之前没用用过.所以利用这周末的我在阿里云上49元搞了个linux(centos 64位)的服务器. 刚开始先装了JDK1.6,安装了Tomcat6.0.这过程中没有遇到太大的问题, 小问题也google一下就解决了.而周六晚上开始安装Mysql,于是到今天下午为

MySQL如何记录binlog

--MySQL如何记录binlog   -------------------------------2014/07/08 binlog文件的内容 log event    MySQL的binlog文件中记录的是对数据库的各种修改操作,用来表示修改操作的数据结构是Log event.不同的修改操作对应的不同的log event.比较常用的几种log event有:Query event.Row event.Xid event等.其中Query event对应的是一条SQL语句,在DDL操作和ST

PHP获取MySql新增记录ID值的方法

今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法有 1.使用语句 mysql_query("select max(id) from user",$link); 2.使用函数msyql_insert_id(); (1)mysql版 int mysql_insert_id ([ resource $link_identifier = NUL

MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法

本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回"Can't connect to MySQL server on localhost (10061)"错误 问题原因:在一番谷歌.百度后,查到问题原因是mysql没有启动. 解决方法:1.将mysql加入到Windows的服务中.切换到mysql安装目录下的bin文件夹,命令行运行"mysqld --install&qu

Mysql日志记录慢查询的SQL

在日常开发当中,经常会遇到页面打开速度极慢的情况,通过排除,确定了,是数据库的影响,为了迅速查找具体的SQL,可以通过Mysql的日志记录方法. -- 打开sql执行记录功能 set global log_output='TABLE'; -- 输出到表 set global log=ON; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的. set global log_slow_queries=ON; -- 打开慢查询sql记录slow_log, 执行成功的:

SQL Server、Oracle和MySQL判断NULL的方法

SQL Server.Oracle和MySQL判断NULL的方法 本文讲述SQL Server.Oracle.MySQL查出值为NULL的替换. 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 Java代码 复制代码代码如下: ISNULL ( check_expression , replacement_value ) ISNULL ( check_expression , replacement_value )