首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查mysql表中是否存在与您要插入PHP的表相同的数据

如何检查mysql表中是否存在与您要插入PHP的表相同的数据
EN

Stack Overflow用户
提问于 2015-08-19 14:49:19
回答 3查看 141关注 0票数 0

我正在尝试编写代码,如果mysql表中有与您要插入的相同的数据,则什么也不做,但如果没有,则插入到表中。

这是我到目前为止的代码:

代码语言:javascript
复制
    for($i=0;$i<count($TitleArray);$i++){
        $sql = "SELECT * FROM ytable WHERE Title *LIKE the one I am about to insert"
if (Data about to insert already exists in table){
        "do nothing";
        }*
else{
        $sql = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) 
                VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";      
    mysql_query($sql,$db_con);
    }

我需要帮助写代码从第一个*到下一个*。请帮帮忙

EN

回答 3

Stack Overflow用户

发布于 2015-08-19 14:54:50

将“标题”字段设置为唯一键,然后简单地使用INSERT IGNORE

代码语言:javascript
复制
for($i=0;$i<count($TitleArray);$i++){
    $sql = "INSERT IGNORE INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";
    mysql_query($sql,$db_con);
}

语句INSERT IGNORE将检查重复键是否有任何问题。如果有的话,它不会插入任何东西。如果没有问题,则会插入您的数据。

编辑

如果您不能修改您的表,就像您在注释中所说的那样,那么使用下面的代码。您的函数是mysql_num_rows (最好使用mysqli而不是mysql)

代码语言:javascript
复制
for($i=0;$i<count($TitleArray);$i++){
    $sql = 'SELECT * FROM ytable WHERE Title LIKE "the one I am about to insert"';
    $res = mysql_query($sql);
    if (empty(mysql_num_rows($res))){
        $sql_insert = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";      
        $res_insert = mysql_query($sql_insert,$db_con);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-08-19 14:57:00

尝尝这个

代码语言:javascript
复制
INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) 
SELECT $TitleArray[$i], $PubdateArray[$i], $LinkArray[$i], NULL, $created FROM ytable
WHERE NOT EXISTS (
    SELECT title FROM ytable WHERE  Title='abcd'
) LIMIT 1;
票数 0
EN

Stack Overflow用户

发布于 2015-08-19 15:13:41

我想这对你会有用的。

代码语言:javascript
复制
for($i=0;$i<count($TitleArray);$i++){
    $sql = "SELECT * FROM ytable WHERE Title='".$TitleArray[$i]."' AND Pubdate='".$PubdateArray[$i]."' AND Link='".$LinkArray[$i]."' AND     Tweeted='NULL' AND Created='".$created."'";
    $dataAvailable = mysql_query($sql,$db_con);

    if (mysql_num_rows($sql) > 0) {
        "do nothing";
    }
    else{
        $sql = "INSERT INTO ytable (Title, Pubdate, Link, Tweeted, Created) VALUES ('$TitleArray[$i]', '$PubdateArray[$i]', '$LinkArray[$i]', NULL, $created)";      
        mysql_query($sql,$db_con);
    }

看看这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32088335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档