在 PHP 中从字符串创建唯一整数

发布于 2024-12-03 16:08:31 字数 244 浏览 1 评论 0原文

我正在使用一个 API 将项目返回给我,然后将这些项目存储在 MySQL 数据库中。但是,API 不会为每个项目返回唯一的 ID,因此除非检查重复项,否则我可能会冒将同一项目存储两次的风险。

我认为防止重复的最有效方法是在 MySQL 中拥有唯一索引。但是,由于 MySQL 无法为字符串提供唯一索引,因此我需要将其中一个字符串(可能是 URL)转换为整数以存储在唯一索引列中。我的这个假设正确吗?我将如何用 PHP 来完成这个任务?

谢谢。

I am using an API that returns items to me, and then storing those items in a MySQL database. However, the API does not return a unique ID for each item, so I risk storing the same item twice unless I check for duplicates.

I think the most efficient way to prevent duplicates is having a unique index in MySQL. However, since MySQL cannot have unique indexes for strings, I need to convert one of the strings (probably the URL) to an integer to store in the unique index column. Am I correct in that assumption? How would I go about accomplishing this with PHP?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素年丶 2024-12-10 16:08:31

您可以拥有一个索引为 UNIQUE 的 VARCHAR 类型列,但它不会自动递增。然后,您可以使用 REPLACE INTO 进行更新/插入查询。

或者,您仍然可以将自动递增整数 ID 列与唯一索引 VARCHAR 列结合使用,您只需在 INSERT 查询之前(或之后)检查重复项,以处理字符串 ID 重复的情况现有的一个。

You can have a VARCHAR-type column that is indexed UNIQUE, it will not be auto-increment though. You could then use REPLACE INTO for your update/insert queries.

Alternately, you can still use an auto-increment integer ID column in combination with a unique index VARCHAR column, you'll just have to check for a duplication before (or after) an INSERT query to handle the case where a string ID duplicates an existing one.

篱下浅笙歌 2024-12-10 16:08:31

MySQL 在字符串上拥有唯一约束或索引完全没有问题。使用字符串作为主键也没有问题。

MySQL has no problem at all with having unique constraints or indexes on strings. It also has no problem with having a string as primary key.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文