MySQL查询某个字段含有字母数字的值
1.正则表达式(REGEXP)
查询MySQL表中某个字段含有字母和数字的值,可以使用正则表达式(REGEXP)来匹配这样的模式。在MySQL中,正则表达式是一个强大的工具,可以用来搜索和匹配字符串中的特定模式。
假设我们有一个名为my_table的表,并且我们想要查询名为my_column的字段,这个字段包含至少一个字母和一个数字。
以下是一个完整的查询示例:
SELECT *
FROM my_table
WHERE my_column REGEXP '^[[:alpha:]]+[[:digit:]]+|[[:digit:]]+[[:alpha:]]+$'
OR my_column REGEXP '[[:alpha:]]+[[:digit:]]+[[:alpha:]]*|[[:digit:]]+[[:alpha:]]+[[:digit:]]*';
这里的正则表达式解释如下:
(1)^[[:alpha:]]+[[:digit:]]+|[[:digit:]]+[[:alpha:]]+$:这个部分匹配以下两种情况:
- 以至少一个字母开头,后跟至少一个数字(
^[[:alpha:]]+[[:digit:]]+) - 以至少一个数字开头,后跟至少一个字母,并且这个字段的值以字母结尾(
[[:digit:]]+[[:alpha:]]+$)
(2)|:这是正则表达式的“或”操作符,用于组合多个模式。
(3)[[:alpha:]]+[[:digit:]]+[[:alpha:]]*|[[:digit:]]+[[:alpha:]]+[[:digit:]]*:这个部分匹配以下两种情况:
- 以至少一个字母开头,后跟至少一个数字,然后可能再跟一些字母(
[[:alpha:]]+[[:digit:]]+[[:alpha:]]*) - 以至少一个数字开头,后跟至少一个字母,然后可能再跟一些数字(
[[:digit:]]+[[:alpha:]]+[[:digit:]]*)
注意:这个正则表达式可能会匹配到一些我们不太想要的结果,比如“abc123def”这样的字符串,它实际上包含了多个字母和数字的组合。如果我们只想匹配那些恰好包含一个字母和一个数字(不考虑顺序和数量)的字符串,那么正则表达式会变得更加复杂,并且可能不太实际,因为我们需要列举所有可能的情况。
不过,对于大多数实际应用来说,上面的查询应该已经足够好了。如果我们需要更精确的匹配,请根据我们的具体需求调整正则表达式。
2.详细示例
为了更清晰地说明如何查询包含字母和数字的字段值,我会给出一些具体的例子。
假设我们有一个名为my_table的表,其中有一个名为my_column的字段,这个字段包含了各种字符串。
2.1示例数据
假设my_table中的数据如下:
| id | my_column |
|----|------------|
| 1 | abc | -- 不包含数字
| 2 | 123 | -- 不包含字母
| 3 | abc123 | -- 包含字母和数字
| 4 | 123abc | -- 包含字母和数字
| 5 | a1b2c3 | -- 包含字母和数字
| 6 | abcdef | -- 只包含字母
| 7 | 123456 | -- 只包含数字
| 8 | a1 | -- 字母和数字连续出现
| 9 | 1a | -- 字母和数字连续出现
| 10 | !#@$% | -- 不包含字母和数字
2.2查询至少包含一个字母和一个数字的字段值
如果我们要查询my_column字段中至少包含一个字母和一个数字的记录,我们可以使用以下正则表达式:
SELECT *
FROM my_table
WHERE my_column REGEXP '[a-zA-Z].*[0-9]|[0-9].*[a-zA-Z]';
这个正则表达式的意思是:
[a-zA-Z].*[0-9]:以字母开头,后面跟任意数量的任意字符(包括0个),然后再跟一个数字。|:或者[0-9].*[a-zA-Z]:以数字开头,后面跟任意数量的任意字符(包括0个),然后再跟一个字母。
2.3查询字母和数字连续出现的字段值
如果我们要查询my_column字段中字母和数字连续出现的记录(例如"a1"或"1b"),我们可以使用以下正则表达式:
SELECT *
FROM my_table
WHERE my_column REGEXP '[a-zA-Z][0-9]|[0-9][a-zA-Z]';
这个正则表达式的意思是:
[a-zA-Z][0-9]:一个字母后面紧跟着一个数字。|:或者[0-9][a-zA-Z]:一个数字后面紧跟着一个字母。
2.4查询包含多个字母和数字的字段值(不连续也可以)
如果我们只是简单地想查询包含至少一个字母和一个数字的字段值(不要求是连续的),那么之前的“查询至少包含一个字母和一个数字的字段值”中的正则表达式就足够了。但是,为了明确性,我们可以再次使用它:
SELECT *
FROM my_table
WHERE my_column REGEXP '[a-zA-Z].*[0-9]|[0-9].*[a-zA-Z]';
使用“查询至少包含一个字母和一个数字的字段值”的查询,我们会得到ID为3、4、5、8和9的记录,因为它们的my_column字段值至少包含一个字母和一个数字。
MySQL查询某个字段含有字母数字的值的更多相关文章
- mysql 查询某字段里含有(或者不含)某字符的所有记录方法(转)
select gid, username from users where FIND_IN_SET(8,gid); //查询gid里含有数字8的记录,gid是varchar ,数据格式:"1 ...
- mysql查询同一个字段下,不同内容的语句
太久没有用SQL语句都有些忘记了,今天工作中遇到了那就尝试记录一下吧 需求是这样的:想查询同一个字段下,两条指定了不同内容,的其他的值 主要是要想到用where......in 语句如下:select ...
- mysql查询某个字段重复的数据
查询某个字段重复的数据 ; 查询股票重复的营业厅 ;
- mysql 查询某字段值全是数字
select * from x_ziyuan where zy_zhanghu regexp '^[0-9]+$'
- mysql 查询中文字段 没有结果的解决方法
代码如下: $conn = new mysqli('localhost', 'root', '', 'excel');$sql = "select 中信一级行业 from excel gro ...
- mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?
需求描述: 在mysql数据库中,创建包含json数据类型的表.记录下,在创建的过程中,需要注意的问题. 操作过程: 1.通过以下的语句,创建包含json数据类型的表 mysql> create ...
- MYSQL查询某字段中以逗号分隔的字符串的方法
首先我们建立一张带有逗号分隔的字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCH ...
- Mysql查询某字段值重复的数据
查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name havi ...
- mysql查询之 连续出现的数字,重复出现的邮箱,删除重复的电子邮箱
1.编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | ...
- mysql查询json字段
一张test表里存了一个content字段是json类型的,查询该content里manualNo这个字段 select JSON_EXTRACT (test .content, '$.manualN ...
随机推荐
- Qt搜索本机网卡对应网段的在线设备
需求:销售给我的需求是找出哪些IP是没有被占用的,所以我要先找出已经被占用的IP 项目是Qt开发的,所以在网上搜索了下,搜索到的实现方式都是:QHostInfo::lookupHost,但是这种方式, ...
- JVM—垃圾收集器
JVM-垃圾收集器 什么是垃圾 没有被引用的对象就是垃圾. 怎么找到垃圾 引用计数法 当对象引用消失,对象就称为垃圾. 对象消失一个引用,计数减去一,当引用都消失了,计数就会变为0.此时这个对象就会变 ...
- 把vim配置成顺手的python轻量级IDE(一)
把vim配置成顺手的python轻量级IDE(一) 地球的外星人君 Linux云计算和Python推动市场提升的学习研究者. 分享一篇文章,正好最近正在折腾VIM,原文在把vim配置成顺手的pytho ...
- Error:A problem occurred configuring project ':app'.
前言 因为部门需要用到另外一个部门的库,而另外一个部门是c++部门,这种声音视频算法java做不了的. 如果是因为有引入c++库产生的这个问题,那么基本上你需要肯定你安装了ndk,如果没有安装那么会报 ...
- c#程序员必学清单
必读书目:1. "Effective C#: 50 Specific Ways to Improve Your C#" by Bill Wagner2. "CLR via ...
- 力扣1068(MySQL)-产品销售分析Ⅰ(简单)
题目: 销售表 Sales: 产品表 Product: 写一条SQL 查询语句获取 Sales 表中所有产品对应的 产品名称 product_name 以及该产品的所有 售卖年份 year 和 价格 ...
- 力扣278(java&python)-第一个错误的版本(简单)
题目: 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n 个版本 ...
- HarmonyOS NEXT应用开发案例——阻塞事件冒泡
介绍 本示例主要介绍在点击事件中,子组件enabled属性设置为false的时候,如何解决点击子组件模块区域会触发父组件的点击事件问题:以及触摸事件中当子组件触发触摸事件的时候,父组件如果设置触摸事件 ...
- 面对DNS劫持,只能坐以待毙吗?
简介: 借助 ARMS-云拨测,我们可实时对网站进行监控,实现分钟级别的监控,及时发现 DNS 劫持以及页面篡改. 作者:白玙 DNS 劫持作为最常见的网络攻击方式,是每个站长或者运维团队最为头疼的 ...
- Effective Java 在工作中的应用总结
简介: <Effective Java>是一本经典的 Java 学习宝典,值得每位 Java 开发者阅读.笔者将书中和平日工作较密切的知识点做了部分总结. 作者 | 宜秋 来源 | 阿 ...