美文网首页
MySQL WHERE 筛选数据

MySQL WHERE 筛选数据

作者: soeben | 来源:发表于2018-10-18 21:45 被阅读0次

    语法

    SELECT
        field1,
        field2
    FROM
        table_name
    WHERE
        field1 = value1 [AND|OR] field2 = value2
    

    运算符支持 =、!=、<>、>、<、>=、<=、<=> 、IN、LINK、REGEXP
    逻辑操作支持 AND、OR 且 AND 优先级大于 OR

    例子

    //结构
    CREATE TABLE `user`  (
      `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
      `name` varchar(10) NOT NULL,
      `age` tinyint(4) NOT NULL,
      `sex` tinyint(4) NOT NULL,
      `tel` char(11) NOT NULL,
      PRIMARY KEY (`id`)
    )ENGINE=InnoDB DEFAULT CHARACTER SET utf8;
    
    //单条件查询
    SELECT * FROM `user` WHERE `id` = 1;
    
    //AND查询
    SELECT * FROM `user` WHERE `name` = '张三' AND `sex` = 1;
    
    //OR查询
    SELECT * FROM `user` WHERE `name` = '张三' OR `name` = '李四';
    
    //查询子句
    SELECT * FROM `user` WHERE (`name` = '张三' OR `name` = '李四') AND `sex`= 1;
    
    //IN查询
    SELECT * FROM `user` WHERE `name` IN ('张三','李四','王五');
    
    //LIKE 模糊查询 '%'代表任意字符 '_'代表占位符
    SELECT * FROM `user` WHERE `name` LIKE '张%'; 
    
    //REGEXP 正则查询 
    SELECT * FROM `user` WHERE `name` REGEXP '^[张王]{1}.*';
    
    //BETWEEN 范围查询 查询两个值之间的数据且包含这两个值
    SELECT * FROM `user` WHERE `tel` BETWEEN '13800138001' AND '13800138003';
    

    LIKE 通配符

    通配符 描述
    % 替代一个或多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符
    [^charlist]、[!charlist] 不在字符列中的任何单一字符

    REGEXP 正则表达式

    关键字 描述
    ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置
    $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置
    . 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式
    [...] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'
    [^...] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'
    p1|p2|p3 匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"
    * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
    + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}
    {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o
    {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次

    相关文章

      网友评论

          本文标题:MySQL WHERE 筛选数据

          本文链接:https://www.haomeiwen.com/subject/qcxezftx.html