栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

选择所有仅包含大写字母的字段

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择所有仅包含大写字母的字段

您可能需要使用区分大小写的排序规则。我相信默认值不区分大小写。例:

CREATE TABLE my_table (   id int,   name varchar(50)) CHARACTER SET latin1 COLLATE latin1_general_cs;INSERT INTO my_table VALUES (1, 'SomeThing');INSERT INTO my_table VALUES (2, 'something');INSERT INTO my_table VALUES (3, 'SOMETHING');INSERT INTO my_table VALUES (4, 'SOME4THING');

然后:

SELECt * FROM my_table WHERe name REGEXP '^[A-Z]+$';+------+-----------+| id   | name      |+------+-----------+|    3 | SOMETHING |+------+-----------+1 row in set (0.00 sec)

如果您不想在整个表中使用区分大小写的排序规则,则也可以使用其他答案中建议的@kchau

COLLATE
子句。

让我们尝试使用不区分大小写的排序规则的表:

CREATE TABLE my_table (   id int,   name varchar(50)) CHARACTER SET latin1 COLLATE latin1_general_ci;INSERT INTO my_table VALUES (1, 'SomeThing');INSERT INTO my_table VALUES (2, 'something');INSERT INTO my_table VALUES (3, 'SOMETHING');INSERT INTO my_table VALUES (4, 'SOME4THING');

这不能很好地工作:

SELECt * FROM my_table WHERe name REGEXP '^[A-Z]+$';+------+-----------+| id   | name      |+------+-----------+|    1 | SomeThing ||    2 | something ||    3 | SOMETHING |+------+-----------+3 rows in set (0.00 sec)

但是我们可以使用

COLLATE
子句将名称字段整理为区分大小写的整理:

SELECt * FROM my_table WHERe (name COLLATE latin1_general_cs) REGEXP '^[A-Z]+$';+------+-----------+| id   | name      |+------+-----------+|    3 | SOMETHING |+------+-----------+1 row in set (0.00 sec)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号