如何在Mysql查询中通过PHP对加密数据进行排序

Posted

技术标签:

【中文标题】如何在Mysql查询中通过PHP对加密数据进行排序【英文标题】:How to sort encrypted data by PHP in Mysql query 【发布时间】:2021-11-24 14:12:25 【问题描述】:

我已经使用 php (Laravel) 加密字符串将信息存储在 mysql 表中,现在我可以如何使用 Laravel 中的 MySQL 查询对其进行排序。

例如。名字用 PHP 加密字符串存储在数据库中,现在我在获取记录数时对数据库中的名字进行排序。

【问题讨论】:

欢迎来到 ***!这不是免费的编码服务。您应该尽最大努力解决问题,然后分享您的代码,以便我们为您提供帮助。请edit your question 包含您的代码。另见How do I ask a good question?。 MySQL 实现是否也存在加密算法?如果是,那么您可以在从数据库获取之前解密和排序。 【参考方案1】:

使用eloquent's accessor 功能。

例子:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Crypt;

class User extends Model

    /**
     * Get the user's first name.
     *
     * @param  string  $value
     * @return string
     */
    public function getFirstNameAttribute($value)
    
        return Crypt::decryptString($value);
    

然后您可以使用collection's sorting 轻松排序。

例子:

User::all()->sortBy('first_name');

【讨论】:

以上是关于如何在Mysql查询中通过PHP对加密数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫/python中的行标题中通过部分搜索对数据集进行排序

如何在 Android 中通过 Firebase Childs 按升序对列表进行排序

如何在 php 中对以下数组/stdclass 对象进行排序? [复制]

如何在php网页中通过一个表单让使用者输入数据提交后把输入的数据传递到mysql数据库中?

如何使用php对mysql数据库中的数据进行加密和解密?

在 django 中通过拖放对项目进行排序