如何知道数据库中的条目是不是唯一
Posted
技术标签:
【中文标题】如何知道数据库中的条目是不是唯一【英文标题】:how to know whether an entry into database is unique or not如何知道数据库中的条目是否唯一 【发布时间】:2014-12-08 04:59:46 【问题描述】:我有一个由两列 url 和该 url 的 html 代码组成的表。使用的列名是 url_in 和 html_code。我使用 php mysql 将数据输入到表中。现在我的问题是我想创建一个函数,一旦我们输入 url,我希望该函数检查 url 是否已经存在于表中,如果存在,那么代码应该回显已经添加的 url,否则它应该将 url 添加到数据库中。
【问题讨论】:
我之前回答了一个几乎完全一样的问题。 ***.com/questions/27348719/… 但我想要 php 的方式 你为什么不让你的数据库处理这个?它远在这方面做得更好,而且它是可移植的;如果您的应用程序不再使用 PHP,那么您的数据库仍将强制执行唯一约束。 我完全同意@Makoto,这是我在另一个问题中给出的答案。 【参考方案1】:试试这个代码。
function check_unique($url)
$sql = "select * from table_name where url_in = '$url'";
$result = mysql_query($sql); //use mysqli instead of mysql. Here I use mysql for example
if(mysql_num_rows($result)===0)
return true;
else
return false;
现在你以这个函数为例
$url = "http://www.google.com";
//check unique
$isUnique = check_unique($url);
if($isUnique)
//do insert query
else
echo 'URL already exist';
【讨论】:
【参考方案2】:试试这个:
INSERT INTO table(url_in , html_code)
SELECT 'YOUR_URL','YOUR HTML CODE' FROM DUAL
WHERE NOT EXISTS
(SELECT url_in FROM table WHERE url_in ='YOUR_URL');
【讨论】:
以上是关于如何知道数据库中的条目是不是唯一的主要内容,如果未能解决你的问题,请参考以下文章
如果在服务器端生成唯一 ID,应用程序如何防止数据库中的重复条目
如何在 MS Access 2003 中删除具有唯一 ID 的重复条目?