用程序如何更好地判断一个记录是否存在?

netxuning 2009-06-30 10:31:45
比如用php编程判断id = 3是否存在
我想到的方法是:
select count(id) as cnt from tbl where id = 3;
然后再看结果集中cnt的值是否为0.

不过总觉得这样效率很低,还有没有更好的办法?
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
笠川大河 2012-08-22
  • 打赏
  • 举报
回复
如果只是判断是否存在,加上 limit 1 是不是更好啊....
反正只判断在不在...
ACMAIN_CHM 2009-06-30
  • 打赏
  • 举报
回复

$result = mysql_query("SELECT * from tbl where id = 3", $link);
$num_rows = mysql_num_rows($result);


然后你可以直接根据 $num_rows 来处理。
但前提看你的需求是什么,如果只是想知道有没有,然后不做任何处理,则你自己的方法select count(*) 反而可能是最好的方法

liangzzzzzzz 2009-06-30
  • 打赏
  • 举报
回复
COUNT(id)、WHERE id 已经是最快了吧?
wwwwb 2009-06-30
  • 打赏
  • 举报
回复
有主键就有索引,你的方法应该是最快的方法

or

select * from tt where id=3;
select FOUND_ROWS();
netxuning 2009-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
如果ID是主键 OR 有索引的话,应该是最快的方法,
也可以用FOUND_ROWS()
[/Quote]

对,是主键!
wwwwb 2009-06-30
  • 打赏
  • 举报
回复
如果ID是主键 OR 有索引的话,应该是最快的方法,
也可以用FOUND_ROWS()

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧