php - mysql 查找数字的第n位

标签 php mysql codeigniter math

我正在考虑将用户的状态保存为一个整数,因此它可以有 9 种不同的状态,每种状态有 10 种类型。 (#########)

例如,一个没有付费和期限的注册用户。状态 = 000011200。

我可以使用 MySQL 来搜索状态为 # # # # # # 2 # # 的用户吗?

最佳答案

这听起来像是一个几乎无法维护的想法。是的,它很紧凑,但人类无法理解,这使得它很难使用。它也离 self 记录很远;如果您忘记或混淆了哪个数字代表什么,您将陷入一大堆问题和逻辑错误。

您应该将每种不同的状态存储在单独的列中,并且最好使用像 ENUM 这样的 self 记录的东西作为值:

CREATE TABLE foo (
    payment_status      ENUM('paid', 'pending', 'rejected'),
    registration_status ENUM('active', 'pending', 'deleted'),
    ...
)

干净、简单、易于理解、可用、可维护、可扩展;可能还有其他一些*能干的更多。我看不出使用其他东西有任何真正的优势。

关于php - mysql 查找数字的第n位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24739503/

相关文章:

php - 使用echo在php中输出javascript

mysql - MySQL 触发器的描述中所写的语法是否正确?会起作用吗?

MySql 通过查询将两个日期列合并为一列

mysql - 创建函数时出现 MYSQL 1064 错误

php - 你如何在 CodeIgniter 中使用多个 Controller ?

php - 如何从另一个非命名空间类访问不同命名空间中的类

.htaccess - 带 Codeigniter htaccess 的 SSL

php - 执行查询加载页面

javascript - LARAVEL:如何将数据从 View 发送到 Controller

php - PDO/SQLite : Single query covering two related databases