我有一張表,其中包含域名和說明列表。SQL(更喜歡MySQL)字符串反向域名的功能
我希望使用一個簡單的函數(本地函數,如果可能的話)顛倒域名錶示法,以更好,更自然的排序順序(個人意見)使用。
例如,我想有轉換下列數據從左至右:
admin.test.example.com => com.example.test.admin
api.test.example.com => com.example.test.api
cdn.test.example.com => com.example.test.cdn
test.example.com => com.example.test
admin.staging.example.com => com.example.staging.admin
api.staging.example.com => com.example.staging.api
cdn.staging.example.com => com.example.staging.cdn
staging.example.com => com.example.staging
在PHP中做到這一點我可以做喜歡的事很簡單:
$rev_domain = implode('.', array_reverse(explode('.', $domain)));
這是容易實現在SQL中? (更喜歡SQL標準合規性,或者MySQL如果需要擴展,或者兩者兼而有之)。
很明顯,另一種選擇是創建並維護一個包含反向DNS名稱的新列,但是我正在尋找可以在查詢中即時使用的內容。
在此先感謝!
編輯:我在尋找一個解決方案,可爲子域部分的任何數,例如工作:example.com和1.2.3.4.5.6.7.8.9.0.example.com
你將不得不編寫自己的函數,遍歷輸入字符串搜索'.'字符。 – eggyal
您是否真的需要保留標籤內的遠期訂單?對於大多數目的來說'REVERSE'應該足以滿足您的需求。 – kmkaplan
簡單地顛倒字符串不會創造我所希望的自然排序能力。例如,它不會將「admin」和「api」緊密放在一起,因爲最終域名部分的第一個字符是api(i)+ admi(n),而不是(a)pi +(a)dmin。 –