The following code outputs in order of 1, 10, 11, 12 of id.
I want to make it 1,2,3,4...
Could anyone tell me what I should do please.
$Q = $this->db->query('SELECT P.*, C.Name AS CatName FROM products AS P LEFT JOIN categories C ON C.id = P.category_id');
Thanks in advance.
The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts the records in ascending order by default. To sort the records in descending order, use the DESC keyword.
The syntax to create a sequence in SQL Server (Transact-SQL) is: CREATE SEQUENCE [schema.] sequence_name [ AS datatype ] [ START WITH value ] [ INCREMENT BY value ] [ MINVALUE value | NO MINVALUE ] [ MAXVALUE value | NO MAXVALUE ] [ CYCLE | NO CYCLE ] [ CACHE value | NO CACHE ]; AS datatype.
First, add an order by clause at the end:
ORDER BY category_id
If category_id is a string, then you must treat it like an integer. There are a few ways to do this. I usually add a zero. You can also cast it.
ORDER BY category_id + 0
As previously mentioned MySQL doesn't support alphanumeric sorting. One common trick to solve this is to first order by length:
ORDER BY LENGTH(column_name), column_name
As long as the non-numeric part of the value is the same length, this will sort 1 before 10, 10 before 100, etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With