[英]Sort SQL ORDER BY query without slashes in front of escaped characters
我试图弄清楚如何按姓氏对SQL查询进行排序。 除客户姓氏具有特殊字符外,此方法均有效。
例如O'Maley。
例如,如果此姓氏以“ Omar”的姓氏排序,则顺序应为:
奥马里·奥马尔
但是,因为我在将PHP添加到数据库中之前在PHP中使用了addlashes(),所以排序实际上是在O''Maley上进行的,因此排序最终得以实现。
奥马尔·奥马里(Omar O'Maley)
当然,在显示给用户之前,先用stripslashes()删除\\。
如何进行正确排序?
研究使用REPLACE()
或TRANSLATE()
sql函数。 例如:
ORDER BY REPLACE(REPLACE(last_name, '\\', ''), ''', '')
上面的REPLACE()
函数将在进行排序之前删除反斜杠和单引号。
ORDER BY TRANSLATE(last_name, '\\'', '')
上面的TRANSLATE()
函数还将删除反斜杠和单引号。 这可能是一种更好的格式,用于指定要从字符串中删除的更多字符。
注意:您没有提到数据库,所以我假设使用Oracle。 大多数数据库具有等效功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.