qd博客

海阔凭鱼跃,天高任鸟飞

mysql FIND_IN_SET方法的使用实例

以下是原来的查询方式:

$inviterUserExt = UserExt::findOne(['user_id' => $inviteUser->id, 'store_id' => $_storeId, 'is_subscribe' => IS_SUBSCRIBE]);
if (!$inviterUserExt) {
    $inviterUserExt = UserExt::findOne(['user_id' => $inviteUser->id, 'is_subscribe' => IS_SUBSCRIBE]);
}

 

因为查询了两次数据库,想减少一次查询,所以使用了find_in_set方法

$order = new Expression("FIND_IN_SET(`store_id`,{$_storeId}) DESC"); 

$inviterUserExt = UserExt::find()
    ->andWhere(['user_id' => $inviteUser->id, 'is_subscribe' => IS_SUBSCRIBE])
    ->orderBy($order)
    ->one();

 

使用find_in_set 将store_id等于当前值的记录排在最前面,如果查询不到那就查询其他的数据,最后得到符合结果的数据。 


Lede安装酷软中心没有的插件

有时候我们在lede的酷软中心并不一定能找到我们想要的插件。那么怎么办呢?

  1. 打开酷软中心,可以看到有一个离线安装,这个功能可以就可以安装我们在酷软中心没有的插件了。

  2. 比如我们需要安装aliddns这个插件,下载(不需要解压),选择文件,点击上传并安装。(下载地址:链接: https://pan.baidu.com/s/1p6nrRkWlAG21BZj3GZ3LkQ 提取码: 8bjn  )

    插件new.png

  3. 安装完成之后会自动跳转到插件页面,即可看到刚刚安装完成的插件了。

    其他插件地址:链接: https://pan.baidu.com/s/112Q4fuO7CWUoS9Tfa5EZhQ 提取码: 297d



    原创不易,转载请注明来源,谢谢。

使用virtual box安装软路由教程

在安装之前,请先打开电脑的bios,设置使用虚拟化技术(Virtualization Technology)为:enable;这样方便安装Linux64位系统。


  1. 下载koolshare-lede(地址:https://firmware.koolshare.cn/LEDE_X64_fw867/openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img.gz)文件,以及virtual box。

  2. 安装birtual box,安装过程中如果有提示选择允许即可。

  3. 之后进入到virtual box的安装目录(在桌面右键点击virtual box快捷键,里面有打开此安装目录),使用命令将img格式文件转化为vdi文件(语法:VBoxManage.exe convertdd xxx.img xxx.vdi)。

  4. 然后打开virtual box,点击设置-->网络,设置为桥接模式,点击确定(否则可能会导致输入ip访问不了软路由)。

    virtualboxsetting.png

  5. 点击新建,起一个名字,选择安装路径,类型选择linux,版本选择linux64(如果没有64位选项,一般是因为没有开启电脑的虚拟化,自行百度哦)。

    newcreatelede.png

  6. 点击下一步,设置内存大小,1G足够使用了。

  7. 选择使用已有的虚拟硬盘文件,然后点击文件夹图标,选择刚才转化为vdi的文件,最后点击创建。

    select.png

  8. 这个时候我们就可以打开刚刚创建好的虚拟机了。然后等着运行结束。如图:

    over.png

  9. 这个时候我们点击回车,会看到下面显示

    enter.png

  10. 之后输入命令:vim /etc/config/network

    按上下键找到config interface 'lan' 底下的 option ipaddr这一行,将ip地址改为与路由器不冲突的其他ip。然后重启。

    network.png

  11. 打开浏览器,将上面修改的ip地址输入,即可进入软路由界面,默认密码位koolshare。

  12. 进去之后点击网络,点击接口。

    interface.png

  13. 点击lan口 后面的编辑,编辑里面的dns以及ip.(如果安装插件显示文件校验不一致,那么一般是dns出错)。

    seetdns.png

  14. ipv4为上面设置的ip,子网掩码照抄,ipv4网关填主路由器的ip即可。dns可以选择百度,谷歌等dns,也可以选择主路由的dns。点击保存。

  15. 之后就可以在酷软中心安装你要的插件了(里面可能没有你想要的插件怎么办,别着急,我会在另一教程中告诉你怎么安装找不见的插件,嘻嘻嘻)。教程结束。有什么问题可以留言给我哦。



    原创不易,转载请注明来源。谢谢。

Ubuntu 下unzip 命令解压乱码

Ubuntu系统使用unzip解压导致中文乱码解决方案有两种:

第一种:使用

sudo unar 文件名.zip

这个方法是最简单的,亲测可用。


第二种:unzip -O GBK 文件名.zip

其中字符可以是CP936、GBK、GB18030三种中的任一一种

但是在使用过程中可能不支持-O参数,那么就需要给unzip打补丁。

根据 GitHub - ikohara/dpkg-unzip-iconv: Makefile for Debian unzip package with iconv 上的安装步骤,给unzip打补丁,然后就可以用-O参数了。


原创博文,转载请注明来源。

php 月份加减最简单的处理方法

从PHP5.3开始, date新增了一系列修正短语, 来明确这个问题, 那就是”first day of” 和 “last day of”, 也就是你可以限定好不要让date自动”规范化”:

如下:

  1. var_dump(date("Y-m-d"strtotime("last day of -1 month"strtotime("2017-03-31"))));

  2. //输出2017-02-28

  3. var_dump(date("Y-m-d"strtotime("first day of +1 month"strtotime("2017-08-31"))));

  4. //输出2017-09-01

  5. var_dump(date("Y-m-d"strtotime("first day of next month"strtotime("2017-01-31"))));

  6. //输出2017-02-01

  7. var_dump(date("Y-m-d"strtotime("last day of last month"strtotime("2017-03-31"))));

  8. //输出2017-02-28


linux服务器之间传输文件 scp

scp /bak/local/tengine/conf/vhosts/* root@35.***.7.10:/etc/nginx/vhosts

解释:

 /bak/local/tengine/conf/vhosts/*   :要传输的文件

root:目标服务器ssh账号名

@后面:目标服务器的IP地址

/etc/nginx/vhosts:要传输到目标服务器的文件保存目录


使用ssh生成密钥并保存在不同的文件(ubuntu)

使用ssh-keygen -t rsa即可在家目录下的.ssh目录中生成id_rsa以及id_rsa.pub。这个文件名是默认的、

如果想要使用其他的文件名使用如下命令即可:

ssh-keygen -t rsa -f ~/.ssh/文件名       //注意:只是文件名,没有任何后缀


将公钥添加到远程服务器:

ssh-copy-id -i id_rsa.pub (换成想要添加的公钥) 远程服务器IP


Ubuntu 添加wine安装程序的快捷方式

步骤如下:


1. sudo apt-get install gnome-panel       //安装gnome的组件及其工具


2. sudo gnome-desktop-item-edit /usr/share/applications/ --create-new      //此命令会在/usr/share/applications/目录下面创建一个desktop文件(类似与Windows的快捷方式)


3. 在弹出的Create Launcher窗口中输入想要添加的内容


4. 点击OK即可完成


git版本回退 实例

1.首先使用git log找到需要回退的版本号:

         比如:git log

        

         commit f3f695f194b251e5b3f940dd9003a72275495669

         Author: lqd001 <aaaaa@gmail.com>

         Date:   Mon May 27 21:26:58 2019 +0800


         add 统计


2.使用git reset --hard回退到上一次提交,或者使用git reset f3f695f194b 回退指定的版本

         比如:git reset f3f695f194b


        重置后取消暂存的变更:

        M template/default_pc/html/actor/detail.html

        M template/default_pc/html/art/detail.html


3.使用git checkout .放弃修改  (也可以放弃一部分修改,使用 :git checkout + 文件名即可)

        

        从索引区更新了 2 个路径


4.查看状态

        git status


        位于分支 master

        您的分支落后 'origin/master' 共 1 个提交,并且可以快进。

      (使用 "git pull" 来更新您的本地分支)


        无文件要提交,干净的工作区


5.将本地代码强行推到远程分支

        git push -f origin master


        总共 0 (差异 0),复用 0 (差异 0)

        To github.com:lqd001/idomv.git

         + f965e5c7...f3f695f1 master -> master (forced update)


6.使用git status 查看状态,一切都恢复如初。

        

        git status

        位于分支 master

        您的分支与上游分支 'origin/master' 一致。


        无文件要提交,干净的工作区


git fatal: 拒绝合并无关的历史

解决方法是:允许其合并历史。只需要在分支名后加上:--allow-unrelated-histories  即可(注意是两个中划线);

如下:

git merge branchName --allow-unrelated-histories 


<< < 1 2 3 > >>
«   2020年9月   »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
搜索
最新留言
文章归档
友情链接
    控制面板
    您好,欢迎到访网站!
      查看权限

    Powered By Z-BlogPHP 1.6.4 Valyria

    (陕ICP备19025567号-2)

    召唤伊斯特瓦尔