MYSQL应用 - 自定义排序,字段置顶等

在MYSQL数据库查询时,排序是经常用到的一个功能。单纯按照某字段排序查询较为简单,无非就是order by `field` (DESC/ASC)。如:

1SELECT * FROM `table`

2ORDER BY `field` DESC

注:上面的table换成要查询的表名,field换成要排序的字段名,DESC表示从大到小,去掉则从小到大。

下面介绍几个复杂一点的应用:

自定义排序

需求:查询table表,取出id为1,5,9,7的记录,并按1597的顺序显示.

解决:

1SELECT * FROM `table`

2WHERE id in(1,5,7,9)

3ORDER BY FIELD(`id`,1,5,9,7) //注意FIELD后面无空格

文章置顶

需求一:查询文章表table,取出所有文章,但字段zj为1的记录置顶(均以time字段排序,time大的 放在前面)。

解决一:

1SELECT * FROM `table`

2ORDER BY `zj` DESC,`time` DESC

解决二:

1SELECT * FROM `table`

2WHERE zj=1

3ORDER BY `time` DESC

4UNION

5SELECT * FROM `table`

6WHERE zj!=1

7ORDER BY `time` DESC

需求二:查询文章表table,取出所有文章,置顶ID为1、5、12、2的文章,并按上述顺序显示。

解决:

 

1SELECT * FROM `table`

2ORDER BY FIELD(`zj`,1,5,12,2) DESC,`time` DESC

备忘:一句话js使input只能输入数字

<input name="start_price" id="start_price" type="text" size="5" onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"/>

 

table居中:

<div   align=center   valign=middle>
<table>
<tr> <td> 居中 </td> </tr>
</table>
</div>

 

parseInt()js数字相加

 

 

 

在当前鼠标位置显示div

var mousePos; 
function mousePosition(ev){ 
    if(ev.pageX || ev.pageY){ 
        return {x:ev.pageX, y:ev.pageY}; 
    } 
    return  {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, 
     y:ev.clientY + document.body.scrollTop  - document.body.clientTop};      

//显示出一个层,divId:层id;x:右偏移像素;y:下偏移像素; 
function openDiv(divId,x,y){ 
    if(x==null){x=0;} 
    if(y==null){y=0;} 
    if(document.getElementById(divId)!=null){ 
        var dvs=document.getElementById(divId).style;    
        dvs.left=parseInt(mousePos.x)+parseInt(x)+'px';
        dvs.top=parseInt(mousePos.y)+parseInt(y)+'px'; 
        dvs.display="block";
    } 

function mouseMove(ev){  
    ev = ev || window.event;  
    mousePos = mousePosition(ev);  

window.document.onmousemove = mouseMove; 

标签: input, 居中, div, text, table