MySQL一次查询所有分类前N条记录

2016-4-4 寒川 网页编程

遇到这么一个需求,需要查询所有分类的文章记录,同时要求各分类的前N条,文章的数据表大概如下:

id:文章ID

category_id:分类ID

title:标题

……

其它字段等。

现在要求的就是各分类的前N条记录,此处设N为10,MySQL语句如下:

SELECT a.* FROM article a
WHERE 10>=(
SELECT COUNT(*) FROM article b
WHERE a.category_id=b.category_id AND a.id<=b.id)
ORDER BY a.category_id,a.id desc

标签: mysql sql

评论(0) 浏览(6641)

如何用正则表达式匹配指定字符开始和指定字符结束

2010-8-27 寒川 网页编程

今天用dedecms写采集规则的时候发现一不小心,把大量无用的字符也采集下来了,重写规则重新集采是不太可能的了,那么多的数据,好再dedecms功能很强大,即使采集下来后也可用替换功能将无用字符给替换掉,于是有了今天的问题。正则匹配指定字符开始和指定字符结束,如以a开始结束的正则表达式为:a.*?b ,即以a开始b结束的字符可能被匹配。顺便将dedecms批量改动太的sql语句记下来,伪静太或动态页面的时候很有用。
进入后台→系统→SQL命令行工具→运行SQL命令行: 单行命令执行查询命令:
1.将所有文档设置为“仅动态”:update dede_archives set ismake=-1
2.将所有文档设置为“仅静态”:update dede_archives set ismake=1
3.将所有栏目设置为“使用动态页”: update dede_arctype set isdefault=-1
4.将所有栏目设置为“使用静态页”: update dede_arctype set isdefault=1

标签: sql dedecms 正则

评论(2) 浏览(19442)

简单而全面的sql查询教程(一)

2010-3-21 寒川 网页编程

说是全面,实际上肯定是不够全面的,不过以后会陆续更新,给新手更是给自己。下列查询教程基于如下数据结构中:
表1:table1
t1_id:自动编号
t1_content1:text,内容1
t1_content2:text,内容2

表2:table2
t2_id:自动编号
t2_content1:text,内容1
t2_content2:text,内容2

表3:table3
t3_id:自动编号
t3_content1:text,内容1
t3_content2:text,内容2

一、简单查询:
1、查询表1中所有字段:
SELECT * FROM table1;
2、查询表1中t1_id字段的所有记录:
SELECT t1_id FROM table1;
二、条件查询
1、查询表1中所有记录,并t1_id降序、升序排列:
SELECT * FROM table1 ORDER BY t1_id DESC;
其中DESC改为ASC时为升序排列。

2、条件查询表1中t1_id记录等于2的所有字段的记录:
SELECT * FROM table1 where t1_id=1;
3、查询表1中t1_id某一范围(100~200)内的记录:
SELECT * FROM table1 where t1_id BETWEEN 100 AND 200;
4、查询前查询表1中所有字段n(n为正整数)条记录:
 SELECT TOP n * FROM table1;

标签: 编程 计算机 学习 sql

评论(0) 浏览(8097)

php SQL BETWEEN AND 查询日期范围。

2010-3-13 寒川 网页编程

SQL BETWEEN AND 查询日期范围的讨论。

查询“今天”的所有记录:
$today=strtotime(date('y-m-d',$time()));
$tomorrow=mktime(0,0,date("s",$today)-1,date("m",$today),date("d",$today)+1,date("Y",$today));//注意此句date("s",$today)-1,这样查询出来的结果才能更加准确。
SQL语句如下:
SELECT * FROM 表名 where 字段 BETWEEN $today AND $tomorrow"

标签: php 脚本 编程 asp sql

评论(0) 浏览(10179)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap