簡體   English   中英

對SQL ORDER BY查詢進行排序,轉義字符前不加斜杠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM