这是一个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断言?
我试过的东西:
ORDER BY email COLLATE utf8_bin
导致COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'
其他人注意到:
latin1
答案 0 :(得分:1)
echo ('a' == 'A') ? 'a==A ' : 'a <> A ';
echo ('a' == 'á') ? 'a==á ' : 'a <> á ';
两者都回来<>
,所以我推断PHP的行为类似于latin1_bin
(或者你所拥有的任何字符集的_bin
)。