我想從表格的字符串列中提取單詞。mysql中的REGEXP_SUBSTR等價於什麼?
description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
預期的結果集
order_id
===========================
2
3
表將至多有100行,文本長度爲〜256炭和柱總是具有一個order_id
本。所以表現不是問題。
在Oracle中,我可以使用REGEXP_SUBSTR
來解決這個問題。我將如何在MySQL中解決這個問題?
編輯1
我使用的定位和SUBSTR來解決這個問題。代碼很醜陋。編寫代碼十分鐘後,我詛咒編寫這樣一個醜陋代碼的人。
我沒有在MySQL文檔中找到REGEXP_SUBSTR函數。但我希望它存在..
回答:爲什麼不能優化表?爲什麼數據以這種愚蠢的方式存儲?
我給出的例子只是表示我正試圖解決的問題。在真實場景中,我使用基於數據庫的第三方排隊軟件來執行異步任務。隊列將Ruby對象作爲文本序列化。我無法控制表格結構或數據格式。隊列中的任務可以重複發生。在我們的測試設置中,一些重複性任務由於陳舊的數據而失敗。我必須刪除這些任務以防止出現錯誤。這樣的錯誤並不常見,因此我不想維護標準化的影子表。
這就是我正在做的。 +1爲花時間寫這個.. – 2010-04-30 07:06:33
編輯答案使用CHAR_LENGTH()而不是LENGTH(),後者是以字節返回佔用的大小,而不是字符串的長度。例如,你會遇到UTF8的麻煩 – 2013-06-14 05:50:11