2015-05-17 41 views

回答

2

這可能是最快的:

LIKE '%[%]%' -- finds all of your test items plus some more. 

如果需要括號是「平衡的」,這是一個艱難的問題,特別是如果他們可以「嵌套」。

REGEXPLIKE更具表現力,但更慢。沒有明顯需要REGEXP

REGEXP需要反斜槓,而不是LIKE

+0

謝謝,不,幸運的是我沒有處理括號的嵌套,不知道LIKE或REGEXP是否可能。 – Clutchy

1

使用LIKE:字符串我想獲得的

select count(*) 
from table t 
where t.string regexp '@\\[@\\]@' 
group by t.TID 

例子

where t.string LIKE '%[%' OR t.string LIKE '%]%' 

在這種情況下,你並不需要一個RegExp基於搜索。

+0

非常感謝,btw爲什麼有些人在其他一些問題中寫了一些問題,你需要把它們放在方括號前面? – Clutchy

+1

*因爲MySQL在字符串中使用C轉義語法(例如,「\ n」來表示換行符),所以您必須加倍在REGEXP字符串*中使用的任何「\」(來自[MySQL REGEXP文檔] ://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp))。我建議使用** LIKE **,它不需要轉義方括號,因爲它不能被視爲普通的epxression特殊字符。 –

+0

請注意,此答案將匹配'不平衡[支架]等。 –