多个唯一的MYSQL

时间:2012-05-28 16:24:14

标签: php mysql ignore

我有一些代码我试图开始工作。我正在寻找的是让我查询一个网站,然后显示结果并上传到数据库。我希望它通过检查日期来忽略我工作的重复项。问题是当用户搜索另一个股票代码时,它没有插入到DB中,因为日期是相同的。有人有什么建议吗?

<?php
$con = mysql_connect("localhost","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("bbpinpal_stocks", $con);
mysql_query("INSERT INTO stocks (stock_name, stock_value, stock_perc, date)
VALUES ('$name', '$last','$perc2', '$date')");


$result = mysql_query("SELECT * FROM stocks");

echo "<table border='1'>
<tr>
<th>Name</th>
<th>Value</th>
<th>Percent Change</th>
<th>Date</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
echo "<tr>";
  echo "<td>" . $row['stock_name'] . "</td>";
  echo "<td>" . $row['stock_value'] . "</td>";
    echo "<td>" . $row['stock_perc'] . "</td>";
      echo "<td>" . $row['date'] . "</td>";
  echo "</tr>";
  } 
echo "</table>";

mysql_close($con);
?>

我已将日期设为独特,但我知道这是我的问题。我怎么能这样,它检查名称和日期,如果匹配忽略

3 个答案:

答案 0 :(得分:1)

UNIQUE上的date索引替换为(stock_name, date)上的索引:

ALTER TABLE stocks
  DROP KEY date,
  ADD UNIQUE KEY (stock_name, date)

答案 1 :(得分:0)

  

我已将日期设为独特,但我知道这是我的问题

这很可能就是问题所在。为什么不使用其他列来唯一标识行?

http://en.wikipedia.org/wiki/Unique_key

“..每个唯一键由该数据实体的一个或多个数据属性组成。”

答案 2 :(得分:0)

INSERT IGNORE会阻止您使用数据库中已有的主键添加数据。您可以拥有一个由2个字段组成的主键。