检查行内是否已存在值而不是列单元格

时间:2014-06-05 10:36:10

标签: php mysql sql

是否可以使用mysql和php检查值是否已经插入ROW而不是COLUMN?

例如:

id       name       surname
1        jonh       smith

是否可以检查john和smith是否已在同一行中注册?

8 个答案:

答案 0 :(得分:4)

是的。你可以像这样使用多个where子句:

SELECT * FROM `users` WHERE `name` = "john" and `surname` = "smith";

有关更复杂的可能性,请阅读select文档。

答案 1 :(得分:0)

SELECT 1 FROM 'MYTABLE' WHERE 'NAME' = 'JHON' AND 'SURNAME' = 'SMITH'

答案 2 :(得分:0)

您可以使用GROUP_CONCAT连接一行中的所有单元格:

SELECT * FROM TableA
WHERE FIND_IN_SET('john', GROUP_CONCAT(Id, Name , SurName separator ',')) > 0
AND FIND_IN_SET('smith', GROUP_CONCAT(Id, Name , SurName separator ','))  > 0;

这不关心哪一列出现了名称JOHN和SMITH

答案 3 :(得分:0)

您可以检查行数

select count(id) from table

您也可以检查数据是否已插入。 reference

  

$ result = mysql_query(" INSERT INTO PEOPLE(NAME)VALUES(' COLE')"));   if($ result){echo" Success&#34 ;;

     

} else {echo"错误&#34 ;;

     

}

答案 4 :(得分:0)

请试试这个。 在这个查询中,我在名称中添加了lcase并检查了两侧,这样你就可以找到在后面和后面的单词中插入哪一个。

$qry="SELECT * FROM Table WHERE LCASE(name) = lcase('john') and LCASE(surname) = lcase('smith')";
$run=mysql_query($qry) or die(mysql_error());
if(mysql_num_rows($run)>0)
{
     echo "already registered";
}

答案 5 :(得分:0)

您可以查看IN子句

SELECT * FROM `MYTABLE` WHERE (`NAME`, `SURNAME`) IN (('jonh', 'smith'));

答案 6 :(得分:0)

使用此代码:

$id=$_POST['id'];

$name=$_POST['name'];


$surname=$_POST['surname'];

$result = mysql_query("SELECT id,name,surname FROM tablename WHERE id='".$id."'name='".$name."' and surname='".$surname."'");


$row = mysql_fetch_array($result);


$cnt = mysql_num_rows($result);



if($cnt == 0)
{ 

    enter code here

(Statement);
}
    else
{ 
(Statement);
}

答案 7 :(得分:0)

这听起来像是要插入记录,但想先检查它是否存在。

如果您不关心插入是否失败(即,您只想进行插入并知道已插入值),那么您可以在名称和姓氏上设置唯一索引。

要进行插入,您只需使用 INSERT IGNORE blah 即可。因此,如果已存在名称和姓氏的组合,INSERT将无声地失败: -

INSERT IGNORE INTO sometable(id, name, surname) 
VALUES(NULL, '$name', '$surname') 

如果您需要知道记录的ID

INSERT IGNORE INTO sometable(id, name, surname) 
VALUES(NULL, '$name', '$surname') 
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)

这将在正常的mysql函数中返回新行或现有行的id(视情况而定)以返回插入的行id。