gpt4 book ai didi

php - mysql select 用于检查条目是否存在

转载 作者:行者123 更新时间:2023-11-29 04:56:17 27 4
gpt4 key购买 nike

我有一个很大的数据库,必须检查一封电子邮件是否在一个特殊的组中我不得不表。

第一个标签叫用户

CREATE TABLE user (
uid int(10) NOT NULL AUTO_INCREMENT,
kid int(3) NOT NULL,
Email varchar(255) DEFAULT NULL,
PRIMARY KEY (uid),
KEY kid (kid)
) ENGINE=MyISAM

和一个名为组的表

CREATE TABLE `group` (
`vuid` int(10) NOT NULL AUTO_INCREMENT,
`uid` int(3) NOT NULL,
`vid` int(3) NOT NULL,
PRIMARY KEY (`vuid`)
) ENGINE=MyISAM

对于每一个插入,我都有一个定义的视频和一个电子邮件现在我必须检查具有 uid 的用户是否在组 vid 中。

从用户 a、组 b 中选择 a.email,b.vuid,其中 a.email=\''.$email.'\' 和 a.kid=' 。 $ child 。和 b.vid=' 。 $视频。 ' and a.uid = b.uid limit 1')

并检查 mysql_fetch_assoc 是真还是假。

但是这非常非常慢。有没有一种简单的方法可以加快速度?

最佳答案

与其使用逗号分隔的表列表,不如尝试使用 JOIN(在这种情况下,INNER JOIN 是最好的选择,因为您要检查两个表中是否存在记录) ON 子句。我已经格式化了您的查询,我的更改以大写字母显示,以使其脱颖而出。

select 
a.email,
b.vuid
from
user a
INNER JOIN group b
ON a.uid = b.uid
where
a.email=\''.$email.'\'
and a.kid=' . $kid.'
and b.vid=' . $vid . '
limit 1

接下来,检查您的索引——确保您在 b.uid 和 a.kid 上有索引。作为一般规则,检查您的 where 子句中您可以索引的值;任何具有独特值(value)的东西都是候选人。

关于php - mysql select 用于检查条目是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6309023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com