Archive for 七月 14, 2008
Regular Expressions in MySQL
Posted by essoduke - 2008 年 07 月 14 日 18:23:52 - 668 User Views
圖片來源: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 url = REPLACE('url', 'www.google.com.tw', 'tw.yahoo.com');
當然,天下沒有白吃的午餐,REGEXP 比對所花費的時間大約是 LIKE 的 6 倍,所以,並不是所有情況都需要 REGEXP 來解決,建議只有在比對規則複雜的情況下使用,才不會影響效能。
參考資料:
- MySQL :: MySQL 5.0 Reference Manual :: 11.4.2 Regular Expressions:
- Use regular expressions in MySQL SELECT statements – Tech-Recipes.com
- [問題]MYSQL 的正規表示法。 – 酷!學園
Technorati Tags: regular expression, mysql, regexp
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.



