我想检查数据库中是否有满足条件的信息假设表名为 good_info
有两个栏位
一个是username 一个是fb_id需求是搜索出是否有与指定username和fb_id都相等的信息1.
表中没有设主键
select * from good_info where username='~s' and fb_id=~p
然后看返回的结果中是否有数据或是
2.
表中没有设username为主键
"select fb_id from good_info where username='~s'
然后在返回的信息中再进行筛选不知道哪种更科学点呢?
有两个栏位
一个是username 一个是fb_id需求是搜索出是否有与指定username和fb_id都相等的信息1.
表中没有设主键
select * from good_info where username='~s' and fb_id=~p
然后看返回的结果中是否有数据或是
2.
表中没有设username为主键
"select fb_id from good_info where username='~s'
然后在返回的信息中再进行筛选不知道哪种更科学点呢?
第一种做法不会也筛选两次嘛?数据库中是如何执行
select * from good_info where username='~s' and fb_id=~p
这条语句的呢?
我是想,就像for循环找一样,如果只有一个筛选条件,当搜索到指定项时,就不用再搜索剩下的项了,但是如果有两个筛选条件,每次就都要遍历整个表才能得知结果
这样看来,我觉得第二种做法是不是会更好
不过不清楚数据库中是如何执行的,所以也是瞎猜
那么第一和第二种都会使用索引,区别是第一种有mysql给你做了筛选,第二种自己做筛选,也不会比第一种好
交给数据库引擎来处理更好点吧!
能想到的第二种方法应该是
select * from good_info where ~p=(select fb_id from good_info where username='^s')
或者
网络传输结果集给程序进行处理
应该都没有第一种高点