是否可以使用mysql和php检查值是否已经插入ROW而不是COLUMN?
例如:
id name surname
1 jonh smith
是否可以检查john和smith是否已在同一行中注册?
答案 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。