使用Codeigniter按字母顺序排列utf8_bin表

时间:2013-05-20 15:35:49

标签: mysql codeigniter utf-8 sql-order-by collation

我使用collat​​ion utf8_bin在MySQL中存储一个表。我想选择使用Codeigniter的active record工具按字母顺序排序的所有名称,但下面的代码首先排序以大写字母开头的所有单词,然后排除非大写字母(由于某种原因它们没有大写)。

$this->db->select('name')
    ->from('partners')
    ->order_by('name', 'asc')
    ->get()
    ->result();

我读到使用ORDER BY name COLLATE utf8_general_ci;会使排序不敏感而不必更改我的表排序规则。 Codeigniter有没有办法做到这一点?这可能是许多表格所必需的,我希望避免在我的查询中使用LOWER(name)作为额外的列来排序。

2 个答案:

答案 0 :(得分:1)

使用$this->db->order_by('lower(name)', 'asc')工作。

答案 1 :(得分:0)

试试这个:

order by cast(name as char) asc, binary name desc