Regular Expressions in MySQL

 

regular expression
圖片來源:Analytics Talk

當要比對的規則已經超乎 LIKE 時,適時地使用正則表達式會更為方便!

列出 A 開頭的所有資料

SELECT name FROM employees WHERE name REGEXP '^A';

列出大寫 A 開頭的所有資料(使用二進位比對)

SELECT name FROM employees WHERE name REGEXP binary '^A';

列出 A, D, F 開頭的資料

SELECT name FROM employees WHERE name REGEXP '^(A|D|F)';

列出數值資料

SELECT age FROM employees WHERE age REGEXP '^[0-9]+$';

更新 url 內的 www.google.com.tw 為 tw.yahoo.com

UPDATE website SET urlREPLACE('url', 'www.google.com.tw', 'tw.yahoo.com');

當然,天下沒有白吃的午餐,REGEXP 比對所花費的時間大約是 LIKE 的 6 倍,所以,並不是所有情況都需要 REGEXP 來解決,建議只有在比對規則複雜的情況下使用,才不會影響效能。

參考資料:

Technorati Tags: , ,

回首過往今日

標籤: , ,

相關文章

No Comments yet »

本篇文章的迴響 RSS 訂閱。 TrackBack URI

發表迴響

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.