ON 子句与 WHERE 子句的不同一种更好地理解带有 WHERE … IS NULL 子句的复杂匹配条件的简单方法
Matching-Conditions 与 Where-conditions 的不同
关于 “A LEFT JOIN B ON 条件表达式” 的一点提醒

ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。

如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据

在匹配阶段 WHERE 子句的条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。它将从匹配阶段产生的数据中检索过滤。

Read More →

装了phpstudy,为了方便启动 自己写了个bat内容是这样的

@ECHO OFF
echo 正在停止Nginx进程……
nginx\Process -k nginx.exe
nginx\Process -k nginx.exe
echo 正在停止PHP(FastCGI)进程……
nginx\Process -k php-cgi.exe
nginx\Process -k mysqld.exe
echo 正在启动Redis进程…..
nginx\Process -k redis-server.exe

echo 正在启动php(FastCGI)进程……
php540\RunHiddenConsole.exe  php540\php-cgi.exe -b 127.0.0.1:9000 -c php540\php.ini
echo .
echo .
php540\RunHiddenConsole.exe  php540\php-cgi.exe -b 127.0.0.1:9000 -c php540\php.ini
echo .
echo .
php540\RunHiddenConsole.exe  php540\php-cgi.exe -b 127.0.0.1:9000 -c php540\php.ini

echo 正在启动MySQL进程……
php540\RunHiddenConsole.exe  mysql\bin\mysqld.exe
echo .
echo .

echo 正在启动Nginx进程……
cd nginx
RunHiddenConsole.exe nginx.exe
echo .
echo .

REM 启动redis
echo 正在启动Redis进程……
cd ..\redis
RunHiddenConsole.exe redis-server.exe redis.conf
echo .
echo .

exit

 

其中php540是我在网上现在的php5.4.0ts版的,ps 一件包可以随意升级的php

另外有两个软件  process 和 RunHiddenConsole.exe 在这里下载nginx

然后放到nginx目录下  并且拷贝一份RunHiddenConsole.exe 到php540目录下

每次开机就启动这个bat是没有问题的。但是有时候打开其他软件php就起不来了。因为php用的是9000端口。我怀疑是此端口被占用了  用cmd查看端口命令   netstat -aon|findstr “9000”

TCP    0.0.0.0:9000           0.0.0.0:0              LISTENING       18204
TCP    [::]:9000                   [::]:0                     LISTENING       18204

可以看到9000端口被pid为18204的软件占用。

用任务管理器看到pid为eclipse占用。然后关闭eclipse 再先启动此bat  再打开eclipse就没问题了

 

数据库的随机查询SQL1 Oracle,随机查询20条select * from(select* from 表名order by dbms_random value)where rownum <= 20;2

数据库的随机查询SQL

1. Oracle,随机查询20条

select * from

(
select  *  from 表名
order by dbms_random.value

)
where rownum <= 20;

2.MS SQL Server,随机查询20条

select top 20  * from  表名order by newid()

3.My SQL:,随机查询20条

select  *  from  表名 order by rand() limit 20

 

随机查询指定人员的一条未读消息

帮助消息表 S_MSG_HINT
帮助消息ID SMH_ID NUMBER(20) PK
帮助消息内容 SMH_TEXT VARCHAR2(200)

人员帮助消息表 S_HINTPEOPLE
人员ID SHP_UID VARCHAR2(20) PK
当前帮助消息ID SMH_ID NUMBER(20)  PK FK

如果为已读消息会在 人员帮助消息表里面生成记录

select
   *
from
   (select
       smh.*,
       nvl2( shp.smh_id,1,0) as status –0:未读 1:已读
   from
       s_msg_hint smh
               left join s_hintpeople shp 
                   on smh.smh_id = shp.smh_id 
                   and shp.shp_uid = ‘p_chencc’
   order by
       dbms_random.value  –随机数值排序
   )
where
   status = 0 and –未读消息
   rownum <= 1  –取一条