如何知道数据库中的条目是不是唯一

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 的重复条目?

如何根据非常大的df中的名称有效地将唯一ID分配给具有多个条目的个人

删除不同表中的条目 MySQL 查询

SQL 查询为其他列中的每个唯一条目返回最高和最低