PHP学习练手(八)

来源:互联网 发布:apple mac pro 2017 编辑:程序博客网 时间:2024/05/16 04:41

控制流和高级比较函数


  • greatest():返回列表中的最大值

  • least():返回列表中的最小值

  • 重点:与聚合函数应用于多行同一列的值不同,比较和控制流功能适用于同一行的多列

    这里写图片描述

  • coalesce():返回列表中的第一个非NULL值
    这里写图片描述

  • IF:SELECT IF (condition, return_if_true, return_if_false)
    如果条件为真,函数的第2个参数将被返回,否则第3个参数将被返回。
    这里写图片描述

  • CASE()函数: SELECT CASE col1 WHEN value1 THEN return_this ELSE return_that END FROM table 当WHEN 中value1值为真时,返回THEN后面的值,否则返回ELSE 中的值
    1- 这里写图片描述

2-为每一个讨论找到最新发布的帖子的日期和时间,如果不存在帖子则返回N/A
这里写图片描述

3-group by——对记录进行分组,经常与聚合函数一起使用。若单独使用,一般只返回一条记录。
这里写图片描述

4-如果一个消息是另一个消息的回复,则将它的主题附加一个字符串REPLY
这里写图片描述

5-查找每一位用户发布的消息数目
这里写图片描述


执行FULLTEXT查找



这里写图片描述

  • fulltext索引:只能在MyISAM表中创建。

    1-确认表的类型:
    这里写图片描述

  • fulltext索引规则:

    • 把字符串分解为独立的关键字
    • 长度不足4个字符的关键字将被忽略
    • 将会忽略称为停止词(stopword)的非常普遍的单词
    • 如果50%以上的记录与关键字匹配,则不会返回记录
    • 默认情况下不区分大小写
  • 执行语句:SELECT * FROM tablename WHERE MATCH (col)AGAINST (terms)
    这里写图片描述

    这里写图片描述
    注:因为此时subject和object的组合才具有fulltext索引

    这里写图片描述
    注:如果把相同的match…against表达式用作选择的值,就会返回实际的相关性。

  • 执行布尔型fulltext查找

    +:必须存在于每个匹配中
    -:绝对不会存在于每个匹配中
    ~:如果存在,则降低一个等级
    *:通配符
    <:降低单词的重要性
    >:提高单词的重要性
    ””:必须匹配精确的短语
    ():创建子表达式

    这里写图片描述


查询优化


  • OPTIMIZE:不时的运行optimize命令,可以去掉表中任何不必要的开销,从而提高交互的速度

  • OPTIMIZE TABLE tablename:在通过alter命令改变表或对表进行了大量的删除操作后,在记录之间会留下虚拟的间断,而运行这个命令可以优化数据库。

  • ANALYZE :更新表中的索引,从而改善它们在查询中使用情况

  • ANALYZE TABLE tablename:每当表中的数据发生批量更改时,可以执行这个命令。
0 0
原创粉丝点击