Php 如何将两个sql查询合并为一个?
可能重复:Php 如何将两个sql查询合并为一个?,php,mysql,Php,Mysql,可能重复: 大家好 $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';
大家好
$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!';}
$sql1=“从'table'中选择*,其中'user`='$user';
$res1=mysql\u查询($sql1);
如果(!$res1 | mysql_num_rows($res1)使用此查询
INSERT INTO USER SELECT * FROM TABLE WHERE user='$user'
表
表和用户表中的列数必须相同,它们的类型也必须相同
你也可以使用
INSERT into user
SELECT * from table
WHERE user='$user'
AND
NOT EXISTS (SELECT * FROM USER
WHERE USER = '$user')
如果将列user
设置为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";
.user
从哪里来?将列user
设置为UNIQUE
TARDIS的医生如果我设置了UNIQUE列,值是否自动给定?如果我有dublite值,我需要设置100000到999999的值我需要自动设置新值$user,如果我将使用ignore,我的行不只是插入…插入TABLE USER?这是什么?很抱歉我弄错了。我已经编辑了。如果我有dublite value,我需要自动设置新值$USER,如果我将使用ignore,row not insert only…如果我有dublite,我需要自动生成新值$USER。然后插入表USER,而不给自动递增字段任何值,sql将为您执行此操作。或者您发布您的表结构@johnproblem!我每次都给出“Yes”。我可以看到表中已经存在具有此值的用户?@JohnSmith编辑了回复。包括在内