MySQL NO CASE SENSITIVE搜索关键字的数据使用LIKE但数据是十六进制格式(非文本格式)

时间:2015-10-23 13:54:05

标签: mysql sql hex sql-like

我有一个数据库,其中相关列中的所有数据都是十六进制格式说的,对于单词ABSENT我们有数据IN十六进制格式414453454e54

我想以十六进制格式对具有特定文本的记录进行搜索(SELECT ..... LIKE'%414453454e54%'

如何以非区分大小写的方式搜索此类关键字“414453454e54”的记录。意味着搜索414453454e54(即ABSENT)应返回包含任何情况下的ABSENT(缺席,缺席)或混合情况(缺席)的所有记录,abseNt)以十六进制格式。

我已尝试使用UPPER(),LOWER()以及许多可在NET上使用的选项,而不是以HEXADECIMAL格式工作。

等待快速解决方案

1 个答案:

答案 0 :(得分:1)

您可以使用MySQL的unhex()方法,并在where子句中将其转换为char。

像这样:

SELECT 
    col
FROM
    table
WHERE
    CAST(UNHEX(col) AS CHAR) LIKE '%ABSENT%'

请注意,这不是非常友好的表现。你的表所拥有的记录越多,它就会越来越慢。