我使用collation 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)
作为额外的列来排序。
答案 0 :(得分:1)
使用$this->db->order_by('lower(name)', 'asc')
工作。
答案 1 :(得分:0)
试试这个:
order by cast(name as char) asc, binary name desc