是否可以在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';
}
}
答案 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)
在我回答之前的一个快速说明。每当你提出问题时,无论是在网络上还是在另一个人身上,你都应该尝试过一些问题。任何主题都是如此。如果你想开车,你必须先尝试启动它。你可能很明显尝试过,但是在一个更技术性的主题中,我们需要知道你实际上已经尝试了一些东西,而你所尝试的东西并不起作用。这些问题很多时候都会被问到,因为用户实际上根本没有尝试过任何问题。尝试一些事情很重要,因为这是你真正的学习经历。只是按照给你的一系列指示,将来对你没有帮助。
现在开始帮助您找出问题所在。您已将问题标记为PHP
和MySQL
问题,这表明您不需要在单个MySQL查询中执行此操作。我不会给你代码来做这件事,但我会指出你的方向来获得一些示例代码。
让我们将您的问题分解为实际步骤:
表格中的搜索值
这是你问题的第一部分。这是一个基本的选择语句。我相信你能搞清楚。如果没有,请谷歌搜索MySQL select
。
如果找不到值
这是您的问题的第二部分,它基本上定义了您必须在PHP中执行的操作。您需要检查是否找不到该值。您需要查看search value in table
步骤中select语句的结果,并确定它是否为空或包含结果。
自动插入
在此步骤中,根据您的上一步if the value is not found
,我们可以确定是否应插入该值。有关如何进行插入的说明,请访问Google mysql insert
。