MySQL查询like语句查询

MySQL查询like语句查询,第1张

like运算符:对字符串进行模糊查找

语法:

xx  like '要查找的内容'

含义:

实现对字符串的某种特征信息的模糊查找。它其实依赖于以下2个特殊的"符号"

%:它代表任何个数的任何字符

_  它代表一个任何字符

例1   select*from tab_load_data where    f5 like"%汨罗%"

例2     select*from  tab_load_data where name like  "%韩%"

常见例子和含义

name  like   '%罗%':表示name中“罗这一字的所有数据

name   like  '罗%':表示name中罗开头的所有数据行比如罗曼罗兰

name like  ''%罗"  表示以罗结尾所有数据行比如c罗 魂斗罗

name like '罗_'以罗开头并只有2个字符所有数据行比如 罗兰

name like '_罗'以罗结尾并只有2个字符所有数据行比如c罗

要找含有%或_怎么办?

xx like '%\%%'   表示xx中含有百分号(%)

例3     select *from   tab_load_data  where  name  like   '%军'

例2    select *from   tab_load_data  where name  like   '韩%'

需求说明 1、我需要查询某列不重复的数据 2、并且显示不重复数据的所有项 sql语句如下select * from data group by address 如果是仅仅查询某列不重复数据,只需要一列 效果如下 sql语句select DISTINCT address from data 这里有一个非常非常需要注意的地方:        SELECT DISTINCT [字段名]后面不能再跟其他的字段,否则检索出来的记录仍然会含有重复项;         错误写法:             SELECT DISTINCT [字段名] ,[其他字段名] FROM [表名] WHERE [检索条件字句]如果我们的记录集里还需要有其他字段值 ,那怎么办呢? 实际上,我们完全可以用另一种办法来解决问题只是需要用到子查询而已! 使用GROUP BY 分组 有一点需要注意: 使用带有GROUP BY字句的查询语句时,在SELECT列表指定的列要么是GROUP BY 指定的列,要么包含聚合组函数 所以用这样一句SQL就可以去掉重复项了: select * from msg group by terminal_id 这样就得到我们想要的结果集了:

出现在select语句中的select语句,称为子查询或内查询。

外部的select查询语句,称为主查询或外查询。

测试数据比较多,放在我的个人博客上了。

浏览器中打开链接:http://www.itsoku.com/article/196

mysql中执行里面的 javacode2018_employees库 部分的脚本。

成功创建 javacode2018_employees 库及5张表,如下:

运行最后一条结果如下:

in,any,some,all分别是子查询的关键词之一。

in :in常用于where表达式中,其作用是查询某个范围内的数据

any和some一样 : 可以与=、>、>=、<、<=、>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。

all :可以与=、>、>=、<、<=、>结合使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据。

下文中会经常用到这些关键字。

运行结果:

not in的情况下,子查询中列的值为NULL的时候,外查询的结果为空。

建议:建表是,列不允许为空。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7287383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存