I’ve got a database that at the minute, I don’t have access to directly, with phpmyadmin (I’ve lost the password).
The query uses a group by (if that’s relevant) and I need to order it by a date field, I can only presume it’s a date time field. It outputs dates like this when I output them directly {ts ‘2011-08-25 11:15:52’}. I need to order by this date.
I’ve tried this but it doesn’t affect the ordering at all.
ORDER BY i.createdOn DESC
The entire query is here.
<cfquery name="dbRsResults1" datasource="#datasource#" maxrows="#irMaxResults+1#">
SELECT DISTINCT i.id AS id,
i.company AS company,
i.insolvencyDate AS insolvency_date,
i.city AS city,
i.createdOn AS createdOn,
1 AS rank_id,
t.entryCopy AS insolvency_type,
i.businessNature AS business_nature,
'I' AS i_type
FROM insolvencies i,
<!---practitioners p,--->
lookupcopy t
WHERE i.checked = 1 AND
t.id = i.insolvencyType <!---AND
p.id = i.practitioner--->
<!---<cfif isUseDates is "Y">--->
AND i.insolvencyDate >= #isStartDate# AND
i.insolvencyDate <= #isEndDate#
<!---</cfif>--->
<cfif isType neq 0>
AND i.insolvencyType = #isType#
</cfif>
<cfif isRegion gt 0>
AND i.region = #isRegion#
</cfif>
<cfif isCategory gt 0>
AND i.businessCategory = #isCategory#
</cfif>
<cfif termsCount gt 0>
AND (
<cfloop from="1" to="#termsCount#" index="i">
(LOWER(i.company) LIKE '%#trim(aTerms[i])#%' OR
LOWER(i.businessNAture) LIKE '%#trim(aTerms[i])#%')
<cfif i LT termscount>
OR
</cfif>
</cfloop>
)
</cfif>
GROUP BY id
<cfif isSearchByDate is "Y">
ORDER BY i.createdOn DESC
</cfif>
</cfquery>
When you use
GROUP BY, as the name suggests, you are generating new rows that are the combination of one or more physical rows. You won’t get any useful sort order if you order by values from the original rows. An example:If we run:
… we get something like this:
… it doesn’t make sense to order by name.