欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于MySQL中的 like操作符詳情

 更新時(shí)間:2021年11月16日 08:33:01   作者:李子捌  
這篇文章主要介紹了MySQL之like操作符,當(dāng)對未知或者說知道某一部分的值進(jìn)行過濾時(shí),可以使用like操作符;like操作符用于模糊匹配。下面我們一起進(jìn)入文章看看文章是我詳細(xì)內(nèi)容

1、簡介

當(dāng)對未知或者說知道某一部分的值進(jìn)行過濾時(shí),可以使用like操作符;like操作符用于模糊匹配。

like支持兩個(gè)通配符,它們分別是:

  • %通配符,用于匹配多個(gè)字符
  • _通配符,用于匹配單個(gè)字符

通配符根據(jù)其所處未知又分為六種匹配方式:

匹配方式 作用
%xx 表示右匹配,右邊的xx字符需要完全相等,左邊可以是任意字符,也可以沒有字符
_xx 表示右匹配,右邊的xx字符需要完全相等,左邊可以是任意一個(gè)字符,必須是一個(gè)不能沒有字符
xx% 表示左匹配,右邊的xx字符需要完全相等,右邊可以是任意字符,也可以沒有字符
xx_ 表示左匹配,左邊的xx字符需要完全相等,右邊可以是任意一個(gè)字符,必須是一個(gè)不能沒有字符
%xx% 表示中間匹配,中間必須完全相等,左右兩邊可以是任意字符,左右兩邊可以沒有其他字符
xx 表示中間匹配,中間必須完全相等,左右兩邊可以是任意一個(gè)字符,左右兩邊必須是一個(gè)不能沒有字符

2、正文

首先準(zhǔn)備一張User表,DDL和表數(shù)據(jù)如下所示,可以直接復(fù)制使用。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用戶名',
  `age` int(11) NOT NULL COMMENT '年齡',
  `sex` smallint(6) NOT NULL COMMENT '性別',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '李子捌', 18, 1);
INSERT INTO `user` VALUES (2, '張三', 22, 1);
INSERT INTO `user` VALUES (3, '李四', 38, 1);
INSERT INTO `user` VALUES (4, '王五', 25, 1);
INSERT INTO `user` VALUES (5, '六麻子', 13, 0);
INSERT INTO `user` VALUES (6, '田七', 37, 1);
INSERT INTO `user` VALUES (7, '謝禮', 18, 1);

SET FOREIGN_KEY_CHECKS = 1;
復(fù)制代碼
數(shù)據(jù)的初始順序如下所示:

mysql> select * from user;
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  2 | 張三   |  22 |   1 |
|  3 | 李四   |  38 |   1 |
|  4 | 王五   |  25 |   1 |
|  5 | 六麻子 |  13 |   0 |
|  6 | 田七   |  37 |   1 |
|  7 | 謝禮   |  18 |   1 |
+----+--------+-----+-----+
7 rows in set (0.00 sec)

2.1 %通配符

%通配符有三種匹配方式,分別是%xx 、xx% %xx% ,接下來演示三者的簡單用法。

需求:

查詢user表中姓氏為張的用戶

語句:

mysql> select * from user where name like '張%';
+----+------+-----+-----+
| id | name | age | sex |
+----+------+-----+-----+
|  2 | 張三 |  22 |   1 |
+----+------+-----+-----+
1 row in set (0.00 sec)


需求:

查詢user表中姓名以七結(jié)尾的用戶

語句:

mysql> select * from user where name like '%七';
+----+------+-----+-----+
| id | name | age | sex |
+----+------+-----+-----+
|  6 | 田七 |  37 |   1 |
+----+------+-----+-----+
1 row in set (0.00 sec)

需求:

查詢user表中姓名中包含李字符的用戶

語句:

mysql> select * from user where name like '%李%';
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  1 | 李子捌 |  18 |   1 |
|  3 | 李四   |  38 |   1 |
+----+--------+-----+-----+
2 rows in set (0.00 sec)


2.2 _通配符

_通配符和%通配符的區(qū)別在于 _只匹配一個(gè)字符,并且必須匹配一個(gè)字符;而%可以匹配多個(gè)字符,甚至0個(gè)字符。

需求:

查詢user表中姓氏為李,并且名字只有兩個(gè)中文的用戶

語句:

mysql> select * from user where name like '李_';
+----+------+-----+-----+
| id | name | age | sex |
+----+------+-----+-----+
|  3 | 李四 |  38 |   1 |
+----+------+-----+-----+
1 row in set (0.00 sec)



需求:

查詢user表中名為三的用戶

語句:

mysql> select * from user where name like '_三';
+----+------+-----+-----+
| id | name | age | sex |
+----+------+-----+-----+
|  2 | 張三 |  22 |   1 |
+----+------+-----+-----+
1 row in set (0.00 sec)


需求:

查詢user表中姓名為三個(gè)子,并且第二個(gè)子為麻的用戶

語句:

mysql> select * from user where name like '_麻_';
+----+--------+-----+-----+
| id | name   | age | sex |
+----+--------+-----+-----+
|  5 | 六麻子 |  13 |   0 |
+----+--------+-----+-----+
1 row in set (0.00 sec)


2.3 通配符使用注意事項(xiàng)

通配符非常強(qiáng)大,我相信很多人都經(jīng)常使用通配符,但是字符串匹配往往并不是一件性能特別快的事情。因此我們在使用通配符的時(shí)候有一些注意事項(xiàng)需要時(shí)刻記住。

  • 能不用則不用的原則,不用能避免通配符帶來的全部問題,所以如果其他操作符能查詢出來,就不要使用like
  • 在使用通配符的地方,盡量縮小查詢范圍,如果有多個(gè)查詢條件,應(yīng)該考慮能否將通配符放置到其他過濾條件的后面
  • 特別注意通配符的選擇,以及通配符的位置,可以參考六種匹配方式選擇自己合適的

到此這篇關(guān)于MySQLlike操作符詳情的文章就介紹到這了,更多相關(guān)MySQL之like操作符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 與MSSQL對比學(xué)習(xí)MYSQL的心得(一)--基本語法

    與MSSQL對比學(xué)習(xí)MYSQL的心得(一)--基本語法

    最開始接觸的數(shù)據(jù)庫為MSSQL,不過最近項(xiàng)目需求,仔細(xì)學(xué)習(xí)了下MYSQL,下面就對比MSSQL,把MYSQL的學(xué)習(xí)心得分享給大家
    2014-06-06
  • MySQL?with語句講解

    MySQL?with語句講解

    這篇文章主要介紹了MySQL?with語句小結(jié),對于邏輯復(fù)雜的sql,with可以大大減少臨時(shí)表的數(shù)量,提升代碼的可讀性、可維護(hù)性,對mysql?with語句相關(guān)知識感興趣的朋友一起看看吧
    2022-11-11
  • MySQL中IO問題的深入分析與優(yōu)化

    MySQL中IO問題的深入分析與優(yōu)化

    據(jù)庫作為存儲系統(tǒng),所有業(yè)務(wù)訪問數(shù)據(jù)的操作都會轉(zhuǎn)化為底層數(shù)據(jù)庫系統(tǒng)的IO行為,下面這篇文章主要給大家介紹了關(guān)于MySQL中IO問題的深入分析與優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • mysql修改自增長主鍵int類型為char類型示例

    mysql修改自增長主鍵int類型為char類型示例

    這篇文章主要介紹了mysql修改自增長主鍵int類型為char類型示例,需要的朋友可以參考下
    2015-04-04
  • mysql優(yōu)化之query_cache_limit參數(shù)說明

    mysql優(yōu)化之query_cache_limit參數(shù)說明

    query_cache_limit指定單個(gè)查詢能夠使用的緩沖區(qū)大小,缺省為1M,一般不需要優(yōu)化
    2021-07-07
  • MySQL存儲過程中實(shí)現(xiàn)執(zhí)行動態(tài)SQL語句的方法

    MySQL存儲過程中實(shí)現(xiàn)執(zhí)行動態(tài)SQL語句的方法

    這篇文章主要介紹了MySQL存儲過程中實(shí)現(xiàn)執(zhí)行動態(tài)SQL語句的方法,實(shí)例分析了MySQL中構(gòu)造及執(zhí)行動態(tài)SQL語句的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解

    這篇文章主要介紹了MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解,THREAD_CACHE是Mysql的連接池,table_cache指定表高速緩存的大小,需要的朋友可以參考下
    2014-07-07
  • CentOS中mysql cluster安裝部署教程

    CentOS中mysql cluster安裝部署教程

    這篇文章主要介紹了在CentOS 6.3系統(tǒng)上搭建MySQL Cluster 7.2.25集群的相關(guān)資料,需要的朋友可以參考下。
    2016-11-11
  • 新建一個(gè)MySQL數(shù)據(jù)庫的簡單教程

    新建一個(gè)MySQL數(shù)據(jù)庫的簡單教程

    這篇文章主要介紹了新建一個(gè)MySQL數(shù)據(jù)庫的簡單教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • MySQL之where使用詳解

    MySQL之where使用詳解

    我們需要獲取數(shù)據(jù)庫表數(shù)據(jù)的特定子集時(shí),可以使用where子句指定搜索條件進(jìn)行過濾。本文主要介紹了MySQL之where使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論