Дано: MySQL 5.1.72, таблицы созданные в utf8-general-ci, установка соединения вызывается следующей функцией:
|
function connect($host,$name,$pass,$base){ $this->idsqlconnection=new mysqli($host,$name,$pass,$base); if (mysqli_connect_errno()) { $serr=mysqli_connect_error(); die("Error connect to Mysql or select base: $serr"); } $result = mysqli_query($this->idsqlconnection,"SET NAMES utf8_general_ci"); mysqli_set_charset($this->idsqlconnection, "utf8_general_ci"); } |
И хоть ты тресни, запрос вида:
|
$SQL = "SELECT * FROM places WHERE orgid='$orgid' AND active=1 ORDER BY name"; $result = $sqlcn->ExecuteSQL( $SQL ) or die("Не могу выбрать список помещений!".mysqli_error($sqlcn->idsqlconnection)); |
Сортировался по непонятно каким критериям. Потеряв на поиск причины несколько часов, перепробовав кучу «рецептов», пришлось заворачивать сортировку запросов в команду binary(), т.е. вот так:
|
$SQL = "SELECT * FROM places WHERE orgid='$orgid' AND active=1 ORDER BY binary(name)"; |
Костыль конечно.. И сортирует различая большие и маленькие буквы. Но таки лучше так чем никак. Ищу лучшее решение.