我的SQL出了问题。我的发言如下:
SELECT p.id,p.nombre
FROM provincia p
INNER JOIN informacion_tiendas it ON p.id=it.idprovincia
GROUP BY p.id
ORDER BY COUNT(p.id) DESC,p.nombre ASC
我需要下一个订单:首先是具有更多数据和按名称排序的元素,但是这个SQL给了我下一个订单(我订购了一些带商店的国家):
马拉加 - 马德里(这两个还可以) - 阿维拉 - 拉科鲁尼亚 - 阿尔梅利亚(这三个都错了)
当订单必须
时马拉加 - 马德里 - 拉科鲁尼亚 - 阿尔梅利亚 - 阿维拉
我的SQL语句中的错误在哪里?
答案 0 :(得分:0)
在p.nombre之后,您是否忘记按SQL中的名称排序?
修改:
试试这个:
SELECT count(p.id),p.nombre
FROM provincia p
INNER JOIN informacion_tiendas it ON p.id=it.idprovincia
GROUP BY p.nombre
ORDER BY COUNT(p.id) DESC,p.nombre ASC
答案 1 :(得分:0)
我认为你现在真的有两个选择..最好的办法是"修复"您的数据库并修复所有条目。 SQL不仅能够处理这样的字符,而且不需要转义子句。
或者,您可以使用hacky ORDER BY子句,它将取决于您以这种方式使用了多少个不同的字母:
ORDER BY REPLACE(REPLACE(LCASE(p.nombre),'í','i'),'á','a') ASC