0
根據docs選擇一個REGXP將總是產生一個布爾值(匹配或不匹配),但我試圖得到結果,如果它是匹配,意味着如果我在做。 ..mysql regexp返回布爾值而不是值
select file_id REGEXP '^\d{10}' from my_table;
什麼,我想回去是不是假意或真心,但假的或實際的10位數字是啓動的file_id。
我錯過了什麼嗎?或者這真的是mySQL如何實現正則表達式?!
我意識到在我的情況下,我可以使用SUBSTR,但現在我只是好奇他們爲什麼會偏離規範的正則表達式匹配如何在其他地方工作。
我會冒險猜測 - 要返回一個匹配,正則表達式實現必須深入到捕獲的組中,以及用戶想要回來的哪一個,這比簡單地說「它匹配」或「它不比賽」。這也將是一個巨大的性能衝擊,因爲通常希望使用'REGEXP'(註釋 - 同義詞'RLIKE')來測試匹配,而不是提取結果。 'REGEXP'(或'RLIKE')只是一個更復雜的'LIKE'。 – 2012-03-12 05:37:42
[有用的Mysql正則表達式](http://www.techotopia.com/index.php/MySQL_Regular_Expression_Searches) – 2012-03-12 05:46:45
@ mathematicalcoffee,我猜...但如果我願意採取性能打擊,我不認爲MySQL應該阻止我!我聽到你對分組的看法,但這就是MATCH應該做的事! – 2012-03-12 06:36:48