gpt4 book ai didi

MySQL高效查询

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:01 25 4
gpt4 key购买 nike

我是 MySQL 的新手。考虑这张表:

 ID INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
User_name VARCHAR(35) NOT NULL,
Full_name VARCHAR(55) NOT NULL,
User_vars VARCHAR(255) NOT NULL,
BirthDay DATE NOT NULL,
password CHAR(70) NOT NULL,
Security_hint VARCHAR(27) NOT NULL,
Email VARCHAR(225) NOT NULL,
userType ENUM ('a','b','c','d') NOT NULL DEFAULT 'a',
Signup_Date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
activation TINYINT(1) UNSIGNED NOT NULL,
Ip BINARY(16) NOT NULL,
PRIMARY KEY (ID),
UNIQUE KEY User_name (User_name,Email)

我正在使用以下查询来检查此表中是否存在电子邮件或用户名:

    $query1 ="SELECT id FROM signup WHERE Email='$Email_Input' LIMIT 1";            
$result1 = mysql_query($query1)

$query2 = "SELECT id FROM signup WHERE User_name='$User_name' LIMIT 1";
$result2 = mysql_query($query2);

if (mysql_num_rows($result2)>0){
echo '1';
}
else if (mysql_num_rows($result1)>0){

echo '1';
}

我的问题:有没有一种有效的方法可以只发出一个查询来检查两者是否存在?

最佳答案

是的,你可以这样做:

SELECT ID FROM signup WHERE Email ='$Email_Input' LIMIT 1
UNION ALL
SELECT id FROM signup WHERE User_name='$User_name' LIMIT 1

也就是说,如果这是两条不同的记录。如果它是相同的记录,那应该回答这两个条件,只需:

 SELECT ID FROM signup
WHERE Email ='$Email_Input'
AND User_name='$User_name'
LIMIT 1

关于MySQL高效查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39189945/

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