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 ...
随机推荐
- 如何在 Python 中执行 MySQL 结果限制和分页查询
Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 "customers" 表中的前 5 条记录: import mysql.c ...
- Zookeeper+dubbo学习笔记
举个例子 你需要打车 那么会使用滴滴软件,而滴滴软件就类似于Zookeeper, 你和汽车司机都需要在滴滴公司注册(留下联系方式方便联系), 当你需要打车时Zookeeper会帮你找到你需要的汽车司 ...
- mysql 必知必会整理—sql 正则表达[五]
前言 简单整理一下sql 正则表达式. 正文 正则表达式是用来匹配文本的特殊的串(字符集合).如果你想从一个文本文件中提取电话号码,可以使用正则表达式.如果你需要查找名字中间有数字的所有文件,可以使用 ...
- 重新整理 .net core 实践篇—————微服务的桥梁EventBus[三十一]
前言 简单介绍一下EventBus. 正文 EventBus 也就是集成事件,用于服务与服务之间的通信. 比如说我们的订单处理事件,当订单处理完毕后,我们如果通过api马上去调用后续接口. 比如说订单 ...
- 我用这10招,能减少了80%的BUG
前言 对于大部分程序员来说,主要的工作时间是在开发和修复BUG. 有可能修改了一个BUG,会导致几个新BUG的产生,不断循环. 那么,有没有办法能够减少BUG,保证代码质量,提升工作效率? 答案是肯定 ...
- 如何使用鞋厂ERP等企业管理软件提高企业运营整体效率?
ERP把企业客户需求.市场规划.产品研发.内部制造等活动以及供应商的资源整合在一起,形成企业一个完整的产业链和供应链,通过企业多个环节的无缝链接和整体运作来提高企业运营整体效率: (1) . 对整个产 ...
- 力扣557(java)-反转字符串中的单词(简单)
题目: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入:s = "Let's take LeetCode contest&qu ...
- 源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的
简介: KubeVela 是一个简单易用又高度可扩展的云原生应用管理引擎,是基于 Kubernetes 及阿里云与微软云共同发布的云原生应用开发模型 OAM 构建.本文主要目的是探索 KubeVela ...
- Dubbo-Admin 正式支持 3.0 服务治理
简介:Dubbo 相信大家并不陌生,是一款微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力.大家在日常开发中更多使用的是 Dubbo 提供的 RPC 通信这一部分能力,而对其提供的服务 ...
- 360 政企安全集团基于 Flink 的 PB 级数据即席查询实践
简介: Threat Hunting 平台的架构与设计,及以降低 IO 为目标的优化与探索.为什么以及如何使用块索引. 本文整理自 360 政企安全集团的大数据工程师苏军以及刘佳在 Flink For ...