哪种MySQL整理与PHP的字符串比较完全匹配?

这是一个MySQL查询:

SELECT last_name FROM users ORDER BY last_name

我们将所有数据都存入PHP,然后运行:

$prior = NULL;
do {
    $current = array_shift($results);
    assert($current >= $prior);
    $prior = $current;
} while ($current !== NULL);

目前这个断言对于某些输入是失败的。 是否可以在上面的MySQL查询中添加COLLATE子句以绝对保证PHP断言?


我试过的东西:

  • 上面的代码,它不适用于某些非ASCII输入
  • ORDER BY email COLLATE utf8_bin导致COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'
  • 也许这是MySQL使用PHP的最佳排序规则是什么? 但是这似乎更主观,我正在寻求针对具体问题的具体答案

  • 其他笔记:

  • 如果它有所不同,这个列是latin1
  • 我的PHP PDO包装库是https://github.com/fulldecent/thin-pdo

  • echo ('a' == 'A') ? 'a==A ' : 'a <> A ';
    echo ('a' == 'á') ? 'a==á ' : 'a <> á ';
    

    两者都返回<> ,所以我推断PHP的行为就像latin1_bin (或者你拥有的任何charset的_bin )。

    链接地址: http://www.djcxy.com/p/25173.html

    上一篇: Which MySQL collation exactly matches PHP's string comparison?

    下一篇: Open "Backup and reset" in Settings Programmatically