我想搜索一段文本以找出特定单词何时被大写。MySQL 有一个带有 POSIX 字符类 [[:upper:]] 的 REGEXP 函数,但我无法让它返回任何结果。
假设我只想在一列中搜索大写的字符串文字 'FREE'。
假设表结构类似于:
CREATE TABLE article_body (
id INT NOT NULL AUTO_INCREMENT,
article_id INT NOT NULL,
summary VARCHAR(255),
body_text TEXT,
PRIMARY KEY(id));
我想找到 free 一词全部大写的 body_text 列,例如
SELECT id, summary FROM article_body WHERE body_text REGEXP '[[:upper:]]+FREE';
但当然该语法是无效的。
帮助?
来自关于mysql REGEXP的文章:
一个简单的解决方案是使用BINARY运算符:
至于为什么你的例子不起作用,我解释它的方式是“任何带有一个或多个大写字母后跟 FREE 的字符串”,但当然 FREE 是不区分大小写的。