2011-02-24 79 views
1
$res = $db->prepare("SELECT user_id FROM sam_users WHERE user_name RLIKE ?"); 
$res->execute(array($login.'[[:digit:]]*')); 

我需要一個正則表達式來返回匹配$ login的所有帳戶,或者$ login後跟一個或多個數字,但不會跟隨alpha值。regex mysql問題

例如 在我的數據庫中,我得到了帳號BLA,bla2,bla3和布拉布拉

,如果我做BLA搜索,我要回去: BLA bla2 bla3 BUT NOT布拉布拉

我當前的代碼也將返回布拉布拉:/

+0

需要有開始/結束錨來包裝你的模式'^''$'如果你想開始/結束的字符串匹配 - - http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html – Ken 2011-02-24 15:33:06

回答

1

您可以用這種方式

SELECT user_id FROM sam_users WHERE user_name regexp '^bla[0-9]*$' 
嘗試0
0

我覺得這是你應該使用正則表達式:

bla[0-9]*$ 
+0

不,仍然匹配'blabla':'select'blabla'rlike'bla [0-9] * $' ;'=> 1 – Ken 2011-02-24 15:58:42