大写和小写查询过滤器

时间:2016-05-02 15:15:09

标签: mysql

我有一个保存十六进制ID的varchar(40)列,我需要大写的ID,如 id_xxxx ;其中xxxx是十六进制数0-9 A-F 前3个字母必须是小写字母。

1)有一种方法可以获得十六进制数不是大写的ID列表吗?

2)有一种方法可以让数据库引擎将 ID_abc1 错误的ID转换为 id_ABC1 吗?

1 个答案:

答案 0 :(得分:1)

使用以下表达式将所有值转换为正确的大小写:

concat('id_', upper(substr(myHexId, 4)))

请参阅live demo in SQLFiddle

要查找非大写的所有十六进制值:

where substr(myHexId,4) != upper(substr(myHexId,4))

查找所有格式错误的值(" id _"或十六进制不正确):

where myHexId != concat('id_', upper(substr(myHexId, 4)))