Ich habe eine Tabelle in einer MySQL-Datenbank bestellen, die wie folgt aussieht:Wie BY 'name + 0' in codeigniter (mysql)
id | name
1 | 1 some words
2 | 2 some other words
3 | 1.1 some other words
...
10 | 10 some other words
Wenn ich die Tabelle mit folgenden Methode sortieren:
$this->db->select('*')
->order_by('name', 'ASC')
->get('table_name');
ich erhalte die Tabelle, um folgende:
id | name
1 | 1 some words
3 | 1.1 some other words
10 | 10 some other words
...
2 | 2 some other words
Aber ich will eigentlich die Tabelle in dieser Reihenfolge erhalten:
id | name
1 | 1 some words
3 | 1.1 some other words
2 | 2 some other words
...
10 | 10 some other words
Dies ist möglich, folgende SQL-Anweisung:
SELECT * FROM database_name.table_name ORDER BY name + 0 ASC;
Aber wenn ich codeIgniters Query Builder wie folgt verwenden erhalte ich einen Datenbankfehler:
$this->db->select('*')
->order_by('name + 0', 'ASC')
->get('table_name');
Beachten Sie, dass es nicht möglich ist, in meiner Situation, um entweder die Zahlen in einer anderen Spalte oder Reihenfolge nach ID zu speichern.
Gibt es also eine Möglichkeit, diese SQL-Anweisung in CodeIgniters Query Builder funktionieren zu lassen?
SELECT * FROM database_name.table_name ORDER BY name + 0 ASC;
Vielen Dank im Voraus
EDIT: '' Ich bin sehr leid für die Verwirrung, aber die in 1.1 war nicht als Gleitkomma gedacht, aber als ein Punkt wie in: 1.1.1, 1.1.2, 1.1.3 Ich habe eine Lösung mit @Marc B Lösung gefunden und setzen Sie es in den Abfrage-Generator wie folgt:
$query = $this->db->select('name+0 AS name', FALSE)
->order_by('name', 'ASC')
->get('table_name');
Vielen Dank sehr viel für Ihre Antworten
Das funktioniert eigentlich nicht. –