2011-10-15 43 views
0

我有一個名爲遊戲的數據庫表,可以說簡化包含列「id」和「gametitle」,並且已經有大約7,000行已經填充。如何爲數據庫字符串值生成一個SEF別名

我想要做的是有一段SQL會爲我可以在URL中使用的gametitle生成一個SEF別名(我已經在網站上成功運行了URL重寫)。

新字段將被輸入到名爲「gamealias」的新列中。例如,如果我有一個「Halo:Combat Evolved」的遊戲標題,它會放下任何特殊字符併產生類似於「halo-combat-evolved」的東西。表中的所有別名必須是唯一的,因爲它們將用於遊戲url中。 http://thegamesdb.net/game/halo-combat-evolved/

另外,如果插入一個新行,這個別名可以從SQL自動生成,而不必在PHP中處理它(也許使用sql字段的默認值),儘管我沒有如果在SQL中神奇地無法實現,就不得不在PHP中這樣做。

回答

0

我認爲這可以在MySQL中使用觸發器和正則表達式替換UDF完成,但它可能是一個更簡單的路線,只是使用PHP。如果將標題的主鍵集成到字符串中,您可以輕鬆保證遊戲集錦的唯一性。例如,考慮一些可能會輸出「halo-combat-evolved-321」的東西。

+0

嗯,這絕對值得深思!包含在別名中的主鍵聽起來像一個好主意......但我不認爲我有必要的MySQL技能來編寫我自己的用戶定義函數:( 謝謝,爲洞察!:) – flexage

+0

@ flexage,如果你想要去正則表達式替換UDF路由,看看http://www.mysqludf.org/lib_mysqludf_preg/或https://launchpad.net/mysql-udf-regexp ... – imm

+0

謝謝,我會讀一讀,看看我是否能勝任這項工作! ;) – flexage

相關問題