在表中搜索值,如果未找到该值,则自动插入

时间:2014-03-11 01:13:54

标签: php mysql sql

是否可以在MySQL中搜索值,如果找不到该值,会自动插入该值吗?

例如: 这是我的桌子。 id是自动增量,case id由我插入 当我在搜索框中搜索一个数字时。如果该数字不在表格内,它会自动将其插入表格中。

ID |案例ID

1 | 324

2 | 789

3 | 314

当我在我的搜索框上搜索123时。我的表中没有123的数字,因此123的数字会自动插入到我的表格中。

id | case id
1  | 324
2  | 789
3  | 314
4  | 123

这可能吗?

这是我的代码

mysql_select_db($database_connection_db, $connection_db);
        $query_viewAduan = mysql_query("SELECT No_KP, COUNT(*) FROM aduan_tidak_hadir WHERE No_KP LIKE '%".$no_kp."%' GROUP BY No_KP;");

        while ($row = mysql_fetch_array($query_viewAduan))
            {
                if (!$row['COUNT(*)'])
                {
                    echo 'satu';
                }
                else if ($row['COUNT(*)'] == '1')
                {
                    echo 'dua';
                }
                else if ($row['COUNT(*)'] == '2')
                {
                    echo 'tiga';
                }
            }           

2 个答案:

答案 0 :(得分:0)

是的,这是可能的,但不是简单的sql语句。这必须通过名为PLSQL的sql扩展来完成。如果你知道PLSQL然后继续阅读或以其他方式停在这里并学习它,因为你阅读了这个完整的答案。

以下是您的问题代码:

declare numb my_table.case_id%type 
begin 
select case_id into numb from my_table where numb=case_id;
exception 
when no_data_found then 
insert into my_table values(/*you said the id auto_increments so I'm leaving this one out*/,numb); 
end;

由于我不知道你的桌子的名字我只是称它为my_table。试试这个它应该有效。

答案 1 :(得分:0)

在我回答之前的一个快速说明。每当你提出问题时,无论是在网络上还是在另一个人身上,你都应该尝试过一些问题。任何主题都是如此。如果你想开车,你必须先尝试启动它。你可能很明显尝试过,但是在一个更技术性的主题中,我们需要知道你实际上已经尝试了一些东西,而你所尝试的东西并不起作用。这些问题很多时候都会被问到,因为用户实际上根本没有尝试过任何问题。尝试一些事情很重要,因为这是你真正的学习经历。只是按照给你的一系列指示,将来对你没有帮助。

现在开始帮助您找出问题所在。您已将问题标记为PHPMySQL问题,这表明您不需要在单个MySQL查询中执行此操作。我不会给你代码来做这件事,但我会指出你的方向来获得一些示例代码。

让我们将您的问题分解为实际步骤:

表格中的搜索值 这是你问题的第一部分。这是一个基本的选择语句。我相信你能搞清楚。如果没有,请谷歌搜索MySQL select

如果找不到值 这是您的问题的第二部分,它基本上定义了您必须在PHP中执行的操作。您需要检查是否找不到该值。您需要查看search value in table步骤中select语句的结果,并确定它是否为空或包含结果。

自动插入 在此步骤中,根据您的上一步if the value is not found,我们可以确定是否应插入该值。有关如何进行插入的说明,请访问Google mysql insert