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编辑了回复。包括在内