Hello people
$sql1="SELECT * FROM `table` WHERE `user` = '$user'";
$res1=mysql_query($sql1);
if(!$res1||mysql_num_rows($res1)<1){
$sql2="INSERT INTO `table` (`user`) VALUES ('$user')";
$res2=mysql_query($sql2);
if(!$res2){echo 'Yes';}else{echo 'No';}
}
else{echo 'user already exists!';}
可以将两个查询合并为一个吗?
答案 0 :(得分:3)
使用此查询。
INSERT INTO USER SELECT * FROM TABLE WHERE user='$user'
table
表和用户表中的列数必须相同,其类型也必须相同。
您也可以使用
INSERT into user
SELECT * from table
WHERE user='$user'
AND
NOT EXISTS (SELECT * FROM USER
WHERE USER = '$user')
答案 1 :(得分:3)
如果您将列user
设置为 UNIQUE ,则每个用户最多只能有 ONE 条目。要ALTER TABLE
并列UNIQUE
列:
ALTER TABLE `table`
ADD UNIQUE INDEX `user` (`user`);
然后,像这样的单个查询会很好:
$res = mysql_query("INSERT IGNORE INTO `table`(`user`) VALUES( '".mysql_real_escape_string($user) . "')";
echo ( mysql_affected_rows() == 0 ) ? "No" : "Yes";