PHP MySQL查询以检查记录是否存在

标签 php mysql sql

我在表中有以下数据..

+-------------+---------------+--------------+
| activity_id | activity_name | main_unit_id |
+-------------+---------------+--------------+
|           1 | DEA           |           67 |
|           2 | DEB           |           68 |
|           3 | DEC           |           68 |
|           4 | fasdfsadf     |           74 |
+-------------+---------------+--------------+

我想添加另一个事件,但在添加之前我必须确保相同的事件名称不存在于 main_unit_id 中... 我写了以下查询,

$SQL_CHECK_ACTIVITY = mysql_query(
    "SELECT count(*) FROM activities " .
    "WHERE main_unit_id = '67' and activity_name = 'DEA'"
);
$RESULT_SQL_CHECK_ACTIVITY = mysql_num_rows($SQL_CHECK_ACTIVITY);
echo $RESULT_SQL_CHECK_ACTIVITY;

然后它打印 1 这意味着针对该项目的事件已经存在...

$SQL_CHECK_ACTIVITY = mysql_query(
    "SELECT count(*) FROM activities " .
    "WHERE main_unit_id = '78' and activity_name = 'afsdaf'"
);
$RESULT_SQL_CHECK_ACTIVITY = mysql_num_rows($SQL_CHECK_ACTIVITY);
echo $RESULT_SQL_CHECK_ACTIVITY;

然后它打印 1 这意味着针对该项目的事件已经存在... 但在这种情况下没有记录....

最佳答案

如果您想添加另一个事件,但不想在 main_unit_id 上重复,那么正确的方法是在该字段上创建一个唯一索引(或约束):

create unique index idx_activities_mainunitid on activites(main_unit_id);

如果您尝试插入重复项,插入将失败。

关于PHP MySQL查询以检查记录是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28521594/

相关文章:

php - 如何在 Joomla 2.5 中使查询 sql 注入(inject)安全

php - 在引导模式中将 ajax 成功数据显示为数据表

php - UTF-8贯穿始终

java - playframework 2.4.2 ebean 集成

sql - 如何刷新 Athena Views?

php - 从不同的网络连接到 MySQL 数据库?

mysql - docker-compose push 多服务 Spring Boot MySQL

python - Django 上的属性错误

MySQL:试图将数据填充到另一个表的一列中

mysql - 在表中制作用户名、正文、msg_date 字段的 id 字段 md5 的最佳方法是什么?