分类 默认分类 下的文章

思路一:
先将数据进行进行排序,取最新的数据

select *
from 
(
select * from guiji where status = 1  having 1 order by kssj desc
) tmp group by xm

注意点
1、having 1 必须要带上,不然查询出来的数据有问题

思路二:
通过MAX函数获取最新的时间和地址(因为需要按照地址分组),然后作为一张表和原来的数据进行联查

SELECT t.* FROM (SELECT address,max(create_time) as create_time FROM test GROUP BY address) a LEFT JOIN test t ON t.address=a.address and t.create_time=a.create_time

注意点
2、address和create_time 必须一致,不一致会有问题

实战经验是通过Jenkins集成ansible插件做项目代码发布,以下是当时的playbook脚本

jenkins 执行的ansible执行类似:

/usr/bin/ansible-playbook /etc/ansible/playbook/deploy.houtai.yml -l houtai -f 5 --private-key /tmp/ssh11525745722860273680.key -u root -e srcdir=/var/lib/jenkins/workspace/www.com/ -e destdir=/web/www/ -e opts=--exclude-from=/etc/ansible/playbook/deploy.exclude --become-user root

deploy.houtai.yml 后台网站发布

- hosts: test,online
  remote_user: root
  tasks:
          - name: deploy code to remote server
            synchronize:
                    src: '{{ srcdir }}'
                    dest: '{{ destdir }}'
                    mode: push
                    dirs: yes
                    owner: no
                    group: no
                    copy_links: no
                    delete: no
                    rsync_opts: '{{ opts | default("") }}'

          - name: copy files if not existing, and delete extraneous files
            synchronize:
                    src: '{{ srcdir }}/{{ item }}'
                    dest: '{{ destdir }}/{{ item }}'
                    mode: push
                    dirs: yes
                    owner: no
                    group: no
                    copy_links: no
                    delete: yes
                    rsync_opts: '--ignore-existing'
            with_items:
                    - common/coreCss/
                    - common/coreJs/
                    - common/css/
                    - common/js/
            ignore_errors: true
                    
          - name: change files mode
            file:
                path: '{{ destdir }}/{{ item.0 }}'
                mode: '{{ item.1 }}'
            with_list:
                    - ['protected/yiic', '0755']
            ignore_errors: true

          - name: opcache_reset
            shell: /usr/bin/php -r 'opcache_reset();'
            ignore_errors: true

deploy.yml 用户网站发布

- hosts: test,online
  remote_user: root
  tasks:
          - name: deploy code to remote server
            synchronize:
                    src: '{{ srcdir }}'
                    dest: '{{ destdir }}'
                    mode: push
                    dirs: yes
                    owner: no
                    group: no
                    copy_links: no
                    delete: no
                    rsync_opts: '{{ opts | default("") }}'

          - name: copy files if not existing, and delete extraneous files
            synchronize:
                    src: '{{ srcdir }}/{{ item }}'
                    dest: '{{ destdir }}/{{ item }}'
                    mode: push
                    dirs: yes
                    owner: no
                    group: no
                    copy_links: no
                    delete: yes
                    rsync_opts:
                           - '--ignore-existing'
            with_items:
                    - common/coreCss/
                    - common/coreJs/
                    - common/css/
                    - common/js/
                    - pay/alipayMobile/alipay.config.php
                    - pay/alipayPC/alipay.config.php
                    - pay/singleTradeQuery/alipay.config.php
                    - wxpay/lib/WxPay.Config.php
            ignore_errors: true
                    
          - name: change files mode
            file:
                path: '{{ destdir }}/{{ item.0 }}'
                mode: '{{ item.1 }}'
            with_list:
                    - ['protected/yiic', '0755']
            ignore_errors: true

deploy.exclude 用于rsync同步文件时的忽略文件列表

.git
.idea
.user.ini
lextab.py
yacctab.py
/assets
/attachments
/uploads
node_modules
/protected/runtime
pay/alipayMobile/alipay.config.php
pay/alipayPC/alipay.config.php
pay/singleTradeQuery/alipay.config.php
#wxpay/lib/WxPay.Config.php

首先说明一点:cookie在不同域名之间是无法共享的,即跨域问题!但是在顶级域名、二级域名、三级域名中是可以共享的!

总结
在setcookie中省略domain参数,那么domain默认为当前域名
domain参数可以设置父域名以及自身,但不能设置其它域名,包括子域名,否则cookie不起作用
如果cookie设置为顶级域名,则全部的域名,包括顶级域名、二级域名、三级域名等,都可以共享该cookie
如果cokkie设置为当前域名,则当前域名及其下面的所有子域名可以共享该cookie

准备如下三个域名:

  • 顶级域名:dalomao.com
  • 二级域名:super.dalomao.com
  • 三级域名:big.super.dalomao.com

访问顶级域名
访问顶级域名 dalomao.com,设置如下四种情况的cookie

Y表示可以共享cookie,N表示无法共享

domain参数dalomao.comsuper.dalomao.combig.super.dalomao.com
YYY
dalomao.comYYY
super.dalomao.comNNN
big.super.dalomao.comNNN

访问二级域名
访问二级域名 super.dalomao.com,设置如下四种情况的cookie
Y表示可以共享cookie,N表示无法共享

domain参数dalomao.comsuper.dalomao.combig.super.dalomao.com
NYY
dalomao.comYYY
super.dalomao.comNYY
big.super.dalomao.comNNN

访问三级域名
访问三级域名 big.super.dalomao.com,设置如下四种情况的cookie
Y表示可以共享cookie,N表示无法共享

domain参数dalomao.comsuper.dalomao.combig.super.dalomao.com
NNY
dalomao.comYYY
super.dalomao.comNYY
big.super.dalomao.comNNY