【问题标题】:MySQL, Search for data containing hex characterMySQL,搜索包含十六进制字符的数据
【发布时间】:2016-04-09 11:16:47
【问题描述】:

我有一个带有 varchar 列 col1 的表 my_table。 utf8

如果我要查找 col1 中包含字母 a 的所有行(气球、土豚等),那么我会这样做:

select col1 
from my_table
where col1 like "%a%" -- But how search for special hex character?

但是如果我正在寻找一个特殊的十六进制字符(在本例中为 0xFFFC),我应该用什么来代替“%a%”?

(这是角色:http://www.fileformat.info/info/unicode/char/fffc/index.htm

请注意,我正在寻找一种在 WHERE 子句中指定此字符的方法。我已经看到了这个https://dev.mysql.com/doc/refman/5.7/en/hexadecimal-literals.html 以及在 Select 部分中也使用十六进制字符的 Stackoverflow 问题/答案。我在 WHERE 子句中需要它。我见过这个How to find certain Hex values and Char() Values in a MySQL SELECT,但它使用了 char(128),但在我的情况下我没有等效的 char 号。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    使用:0x61 == 'a'

    select col1 
    from my_table
    where col1 LIKE concat('%',0x61,'%');
    

    她是一个样本

        CREATE TABLE `tmptable` (
          `image` varchar(250) DEFAULT NULL,
          UNIQUE KEY `d` (`image`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO `tmptable` (`image`)
    VALUES
        ('äöüß');
    
    > SELECT image,hex(image) FROM tmptable WHERE image LIKE concat ('%',0xC39F,'%');
    +--------------+--------------------------+
    | image        | hex(image)               |
    +--------------+--------------------------+
    | äöüß`´'      | C3A4C3B6C3BCC39F60C2B427 |
    +--------------+--------------------------+
    1 row in set (0.00 sec)
    

    【讨论】:

    • 这对我的角色不起作用: concat('%', 0xFFFC,'%');它没有找到它,但我知道它在那里,因为我可以找到它,我为所有行选择它,然后通过 Python 中的数据查找字符。
    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • @Rohit Gupta,对不起,我不是键盘上的空洞日,但答案是正确的。我添加了一个示例来说明它的工作原理。
    • 但是 OP 说这对他的角色不起作用。现在看,我认为它可能,所以我赞成它。我无法反转旗帜。
    【解决方案2】:

    你可以这样写你的“选择”:

    选择 col1 来自 my_table 其中 col1 LIKE CONCAT('%',X'FFFC','%');

    如您所说,您可以在文档https://dev.mysql.com/doc/refman/5.7/en/hexadecimal-literals.html 中阅读如何使用十六进制 并使用 concat 您使用已解析的字符。

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 2023-04-08
      • 1970-01-01
      • 2019-12-26
      • 2014-10-07
      • 2014-03-26
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      相关资源
      最近更新 更多