区分大小写的数据库值

问题描述 投票:0回答:1

我想在数据库中存储base64令牌。具体来说:我想将其存储在一个教义的orm模型中。

Base64包含小写和大写字母,但默认情况下mysql和sqlite不区分大小写。

我知道您可以按以下说明更改字段的排序规则:https://stackoverflow.com/a/30897421。但这不是与数据库无关的,或者至少sqlite不喜欢它:

PDOException: SQLSTATE[HY000]: General error: 1 no such collation sequence: ascii_bin

我知道的唯一与平台无关的真正方法是使用二进制类型,但是我不喜欢这种解决方案,因为它不是我要存储的二进制。

有没有解决此问题的优雅方法?

mysql sqlite doctrine dbal
1个回答
0
投票

将其转换为Base64后立即将其转换为小写。

由于您需要一种“数据库不可知的方式”,因此解决方案必须位于应用程序中。所有与数据库相关的解决方案都将有所不同:您可以使用归类,将触发器插入小写字母等,但这在每个数据库上都不同。

© www.soinside.com 2019 - 2024. All rights reserved.