mysql 有 like in吗_MySQL常用命令(三)-IN、LIKE

IN

与OR的功能相似,但是与OR相比具有更多优势

更简洁;

计算速度更快;

可以包含其他的SELECT语句,功能更加强大;

mysql> SELECT productName,price FROM product;

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10002 | 30.00 |

| 10002 | 888.00 |

| 10003 | 1000.00 |

+-------------+---------+

5 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName IN ('10001','10003');

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10003 | 1000.00 |

+-------------+---------+

3 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName = '10001' OR productName = '10003';

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10003 | 1000.00 |

+-------------+---------+

3 rows in set (0.00 sec)

NOT

作用:否定它之后的任何条件;

常见的搭配:NOT IN、NOT BETWEEN、NOT EXIST、NOT NULL;

mysql> SELECT productName,price FROM product;

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10002 | 30.00 |

| 10002 | 888.00 |

| 10003 | 1000.00 |

+-------------+---------+

5 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName NOT IN ('10001','10003');

+-------------+--------+

| productName | price |

+-------------+--------+

| 10002 | 30.00 |

| 10002 | 888.00 |

+-------------+--------+

2 rows in set (0.00 sec)

LIKE

作用:进行模糊搜索;

%通配符

表示任何字符串出现任何次数;

注意:

在给定的位置出现0个、1个和任意多个字符

不可以匹配NULL;

mysql> SELECT productName,price FROM product;

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10002 | 30.00 |

| 10002 | 888.00 |

| 10003 | 1000.00 |

+-------------+---------+

5 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName LIKE '10001%';

+-------------+--------+

| productName | price |

+-------------+--------+

| 10001 | 100.00 |

| 10001 | 450.00 |

+-------------+--------+

2 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName LIKE '1000%';

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10002 | 30.00 |

| 10002 | 888.00 |

| 10003 | 1000.00 |

+-------------+---------+

5 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName LIKE '%001%';

+-------------+--------+

| productName | price |

+-------------+--------+

| 10001 | 100.00 |

| 10001 | 450.00 |

+-------------+--------+

2 rows in set (0.00 sec)

_通配符

与%可以匹配任意多个字符不同,它只能匹配一个字符;

mysql> SELECT productName,price FROM product;

+-------------+---------+

| productName | price |

+-------------+---------+

| 10001 | 100.00 |

| 10001 | 450.00 |

| 10002 | 30.00 |

| 10002 | 888.00 |

| 10003 | 1000.00 |

+-------------+---------+

5 rows in set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName LIKE '_001';

Empty set (0.00 sec)

mysql> SELECT productName,price FROM product WHERE productName LIKE '_0001';

+-------------+--------+

| productName | price |

+-------------+--------+

| 10001 | 100.00 |

| 10001 | 450.00 |

+-------------+--------+

2 rows in set (0.00 sec)

通配符使用的利弊

通配符是模糊检索,效率没有精确检索快;

非不要情况下,要少使用通配符进行检索;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值