代码之家  ›  专栏  ›  技术社区  ›  Richard Turner

MySQL是否正在转换查询中的UTF-8字符(而不是结果),去掉重音?

  •  0
  • Richard Turner  · 技术社区  · 16 年前

    SELECT site_id, site_name FROM tbl_site WHERE site_name LIKE '%ém%'
    

    但是,使用一些PHP(PDO)执行相同的查询会返回包含“em”的所有行,但不会返回包含“m”的一行。更奇怪的是,MySQL查询日志显示查询包含“”,而不是“e”。

    你知道这是怎么回事吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   sfussenegger    16 年前

    这取决于 character set and collation

    你能把考试结果贴出来吗

    SHOW CREATE TABLE <yourTable>;
    

    此外,您可以在查询级别上指定所需的排序规则:

    SELECT site_id, site_name FROM tbl_site WHERE site_name LIKE '%ém%' collate utf8_bin;
    -- same as
    SELECT site_id, site_name FROM tbl_site WHERE BINARY site_name LIKE '%ém%';
    

        2
  •  1
  •   Ignacio Vazquez-Abrams    16 年前

    这个 utf8_general_ci

    推荐文章