MySQL学习足迹记录06--数据过滤--LIKE搭配百分号(%)和下划线(_)通配符

1.LIKE操作符

 *%表示匹配任何字符出现任意次数(>=0)

   为了便于观察,先把prod_name字段的所有的数据列出

   eg:
   mysql> SELECT prod_name FROM products;

+----------------+
| prod_name      |
+----------------+
| .5 ton anvil   |
| 1 ton anvil    |
| 2 ton anvil    |
| Detonator      |
| Bird seed      |
| Carrots        |
| Fuses          |
| JetPack 1000   |
| JetPack 2000   |
| Oil can        |
| Safe           |
| Sling          |
| TNT (1 stick)  |
| TNT (5 sticks) |
+----------------+
14 rows in set (0.00 sec)



mysql> SELECT prod_name FROM products 
         -> WHERE prod_name LIKE 'jet%';        
 #检索一任何"jet"开头的数据

+--------------+
| prod_name    |
+--------------+
| JetPack 1000 |
| JetPack 2000 |
+--------------+
2 rows in set (0.00 sec)





mysql> SELECT prod_name FROM products
         -> WHERE prod_name LIKE '%anvil%';
                      #'%anvil%'表示匹配任何位置包含文本anvil的值

+--------------+
| prod_name    |
+--------------+
| .5 ton anvil |
| 1 ton anvil  |
| 2 ton anvil  |
+--------------+
3 rows in set (0.00 sec)





mysql> SELECT prod_name FROM products
        -> WHERE prod_name LIKE 's%e';
                    #找出以s开头并一e结尾的所有产品

+-----------+
| prod_name |
+-----------+
| Safe      |
+-----------+
1 row in set (0.00 sec)





 *下划线(_)通配符
   用途与%一样,但下划线只匹配单个字符
  eg:
   mysql>
SELECT prod_name FROM products
           -> WHERE prod_name LIKE '_ ton anvil';

+-------------+
| prod_name   |
+-------------+
| 1 ton anvil |
| 2 ton anvil |
+-------------+
2 rows in set (0.01 sec)



 请对比%操作符的结果:
 mysql> SELECT prod_name FROM products 
         -> WHERE prod_name LIKE '% ton anvil';

+--------------+
| prod_name    |
+--------------+
| .5 ton anvil |
| 1 ton anvil  |
| 2 ton anvil  |
+--------------+
3 rows in set (0.00 sec)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`LIKE` 和 `IN` 都是 MySQL 中的条件筛选语句,但是它们的使用场景和语法略有不同。 `LIKE` 用于匹配字符串,常用于模糊查询。语法为: ```SQL SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern; ``` 其中 `column_name` 是需要匹配的列名,`table_name` 是需要查询的表名,`pattern` 是需要匹配的字符串,可以使用 `%` 作为通配符。 例如,要查询 `employees` 表中名字中包含 `e` 的员工,可以使用以下 SQL 语句: ```SQL SELECT * FROM employees WHERE name LIKE '%e%'; ``` `IN` 用于匹配多个值,常用于多条件查询。语法为: ```SQL SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); ``` 其中 `column_name` 是需要匹配的列名,`table_name` 是需要查询的表名,`value1, value2, ...` 是需要匹配的值。 例如,要查询 `employees` 表中在 `New York` 和 `Los Angeles` 工作的员工,可以使用以下 SQL 语句: ```SQL SELECT * FROM employees WHERE city IN ('New York', 'Los Angeles'); ``` 当需要同时使用 `LIKE` 和 `IN` 时,可以使用以下 SQL 语句: ```SQL SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern AND column_name IN (value1, value2, ...); ``` 其中 `column_name` 是需要匹配的列名,`table_name` 是需要查询的表名,`pattern` 是需要匹配的字符串,`value1, value2, ...` 是需要匹配的值。 例如,要查询 `employees` 表中在 `New York` 和 `Los Angeles` 工作,并且名字中包含 `e` 的员工,可以使用以下 SQL 语句: ```SQL SELECT * FROM employees WHERE city IN ('New York', 'Los Angeles') AND name LIKE '%e%'; ``` 希望这些信息对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值