首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有效地找到重复的记录?

如何有效地找到重复的记录?
EN

Database Administration用户
提问于 2020-11-13 02:38:38
回答 1查看 29关注 0票数 0

我有6门课程的注册申请。该程序将首先检查重复注册用户。那些需要检查的用户来自去年。如果用户注册了一门课程,他们就不能注册任何其他课程。

代码语言:javascript
复制
---firstroundregisted table structure---

id|englishname  |idcard |
1 |CHAN SIU MING|A1234  |
2 |TAK HO KANG  |Z4123  |

---Contain >5000 last year registered users records for the 6 courses---

PHP中的sql如下所示。

代码语言:javascript
复制
SELECT * FROM firstroundregisted 
WHERE englishname='".$_POST['studentname']."' 
AND idcard='".$_POST['idcard']."' 
LIMIT 1;

这是查找用户注册与否的最快方法吗?

其他:

我在这里问了一个问题:如何提高最大值_使用_联系?,一些绅士建议我优化sql,所以我开始一个新的问题,重点放在优化上。谢谢你们的帮助。

EN

回答 1

Database Administration用户

发布于 2020-11-13 15:13:04

这是查找用户注册与否的最快方法吗?

够近的了。

如果表是在englishname (最好也是idcard )上索引的,那么是的。实际上,如果这两个键唯一地标识每一行,那么它们实际上应该是表的主键。

如果表没有被索引,那么它确实应该是。

但是..。

不要在生产代码中使用"select *“。

永远不要在动态生成的SQL中直接使用原始的用户提供的值。

这样做是最快的方法之一,以获得您的表,可能,您的整个数据库良好和真正的混乱。这个问题被称为<#>SQL注入攻击,您的代码对此非常开放。

强制性XKCD参考:小鲍比桌

您最好的计划是使用准备好的/参数化语句,但如果失败,则必须“转义”用户的值,这样它们才能形成有效和安全的SQL。

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

https://dba.stackexchange.com/questions/279617

复制
相关文章

相似问题

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