在使用MySQL進行模糊查詢時,有些開發(fā)者會使用中括號[]來匹配多個字符,但事實上MySQL并不支持這種用法。
MySQL中可以使用%和_來匹配任意數(shù)量和任意單個字符,比如:
SELECT * FROM table WHERE column LIKE 'abc%' SELECT * FROM table WHERE column LIKE '%abc' SELECT * FROM table WHERE column LIKE '%abc%' SELECT * FROM table WHERE column LIKE '_a%' SELECT * FROM table WHERE column LIKE '%a_'
上述代碼分別表示:
- 以“abc”開頭的字符串
- 以“abc”結尾的字符串
- 包含“abc”的字符串
- 第二位是“a”的字符串
- 倒數(shù)第二位是“a”的字符串
如果要匹配多個字符,可以使用多個LIKE語句,或者使用正則表達式。
SELECT * FROM table WHERE column LIKE 'a%' OR column LIKE 'b%' OR column LIKE 'c%' SELECT * FROM table WHERE column REGEXP '^[abc]'
上述代碼分別表示:
- 以“a”、“b”、“c”開頭的字符串
- 以“a”、“b”、“c”開頭的字符串,使用正則表達式匹配
因此,使用中括號[]來匹配多個字符是錯誤的使用方式,建議開發(fā)者根據(jù)需求使用合適的匹配方式。