【MySQL比知必会】第八章 用通配符进行过滤

1、LIKE操作符

  之前使用的操作符都是针对已知的数据,而使用通配符可以对未知数据也进行搜索。

  通配符(wildcard):用来匹配值得一部分的特殊字符。

  搜索模式(search pattern):由字面值、通配符或两者组合构成的搜索条件。

  搜索子句要使用使用通配符,必须使用LIKE操作符,因为它指示MySQL,后面跟的搜索模式是通配符匹配而不是直接相等匹配。

  谓词:当一个操作符作为谓词时,它不再是一个操作符,LIKE是一个谓词。

2、百分号通配符%

  %表示任何字符出现任意次数。

  输入:SELECT prod_id,prod_name

     FROM products

     WHERE prod_name LIKE ‘jet%‘;

  分析:显示两列--产品id和name,表来源-products,过滤条件 商品name头三个字符为jet(不论大小写,但是搜索模式是可以设置区分大小写的,此处未设置)。

  注:通配符可以出现在搜索模式中的任意位置使用,个数也是任意个,比如:LIKE ‘%jet%‘, LIKE ‘s%e‘,通配符除可以配一个或多个字符外,还能匹配0个字符,所以通配符的范围实际为0-∞。通配符不能匹配null。

3、下划线通配符(_)

  下划线通配符只能匹配一个字符。

4、使用通配符的技巧

  不要过度使用通配符,通配符的是以性能为代价的。

  一定要使用通配符时,不要把它放在搜索模式的开始处。

时间: 2025-01-06 14:11:38

【MySQL比知必会】第八章 用通配符进行过滤的相关文章

【MySQL比知必会】第七章 数据过滤

1.组合WHERE子句 操作符(operator):用来联结或改变WHERE子句中的子句的关键字. 2.AND操作符 输入:SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10; 分析:显示三列--prod_id,prod_price,prod_name,过滤条件是,供应商id是1003,价格小于10.AND就是需要同时满足的过滤条件. 3.OR操作符 输入:SELE

MySQL必知应会-第8章-用通配符进行过滤

第八章 用通配符进行过滤 本章介绍什么是通配符.如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤. 8.1 LIKE操作符 前面介绍的所有操作符都是针对已知值进行过滤的.不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,共同点是过滤中使用的值都是已知的.但是,这种过滤方法并不是任何时候都好用.例如,怎样搜索产品名中包含文本anvil的所有产品?用简单的比较操作符肯定不行,必须使用通配符.利用通配符可创建比较特定数据的搜索模式.在这个例子中,如果你

mysql学习--mysql必知必会

上图为数据库操作分类: 以下的操作参考(mysql必知必会) 创建数据库 执行脚本建表: mysql> create database mytest; Query OK, 1 row affected (0.07 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | mytest | | performan

MySQL必知必会 学习笔记(一)

第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)]. 第二章 MySQL简介 MySQL是一种DBMS,即它是一种数据库软件.基于客户机----服务器的数据库. MySQL工具: 1.mysql 命令行实用程序 2.MySQL Administrator 3.MySQL query Browser 第四章 检索数据 LIMIT 5 表示MySQL返

mysql 必知必会总结

以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随时查看. 命令:sql 不区分大小写,语句大写,列.表名小写是一种习惯连接命令:mysql -u user_name –h example.mysql.alibabalabs.com –P3306 –pxxxxquithelp show; // 查看所有 show 命令show databases;

《MySQL必知必会》读书笔记_4

PS:一个实际的存储过程案例 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_article_by_id`(IN `id` int) BEGIN #Routine body goes here... DECLARE temp INT; SET @aid = id; SELECT COUNT(*) FROM gk_reply_article WHERE a_id = @aid INTO temp; IF(temp <> 0) THEN

mysql学习--mysql必知必会1

?? 例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式处理. (.)是正則表達式的一个符号,表示匹配随意一个字符: mysql> select prod_name -> from products -> where prod_name regexp '.000' -> order by prod_name; +--------------

《MySQL 必知必会》读书总结

这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. ? ? 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter password:****** 显示数据库 mysql>SHOW DATABASES; 选择数据库 mysql>USE mytest; 显示数据库中的表 mysql>SHOW TABLES; 显示表列 mysql>SHOW COLUMNS FROM tmall_user; mysql

《MySQL必知必会》读书笔记_3

PS:这次的信息量有点大. 聚集不同值 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003 #相同的值不会被计算 组合聚集函数 SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg FROM products