php mysql 查询只返回第一条数据

php mysql 查询只返回第一条数据,第1张

1、首先用navicat新建一个数据库database1,在database1数据库中新建一个表table2。

2、在table2中添加新的数据。

3、接着新建一个名称为mysql_query的数据库,在页面中用mysql_connect 函数与数据库建立连接。

4、用mysql_select_db函数选择要查询的数据库。

5、最后将mysql_query,php文件在浏览器中打开,查看查询到数据库中的内容的结果。

select *

from table  ###

where not exists (

select * from table  ###

where # = #

and ## <##

)

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,只有用二重循环查询来解决。

给个例子把,比如:表table_a 4条数据

id A B C D

01 ab 1a2 1b2 121

02 ab 2a3 3b3 4a1

03 ac 1a2 1b2 121

04 ac 2a4 3b2 52g

何让A字段重复取条 比

01 ab 1a2 1b2 121

03 ac 1a2 1b2 121

保留相同A值id行

select *

from table_a a

where not exists (

select 1 from table_a b

where b.A = a.A

and b.id <a.id

)

通过查询语句select * from user where id=1

我不知道你这个username指的是不是字段,如果是要取出表中某个字段的值。

可以通过select 字段名1,字段名2 ... from user where id=1。

-- MS sql server2005以上,ORACLE

select * from (

select row_number() over (  order by starttime asc) as rownum,* from steriworkrecord

where starttime  between '2013-11-1' and '2013-12-31'

)  a

where rownum between 2 and 10

-- 【注意( order by starttime asc)是你排序的方式asc升序,desc降序】

-- ORACLE还可以

select * from (

select rownum as n,* from steriworkrecord

where starttime  between '2013-11-1' and '2013-12-31'

)  a

where a.n between 2 and 10

-- MYSQL,postgreSQL似乎只能标量子查询

SELECT *FROM (

SELECT a.*,(

SELECT count(*)  FROM steriworkrecordb    WHERE b.ID<= a.ID) AS n

from steriworkrecorda

) ts

where ts.n between 2 and 10

-- 【注意b.ID<= a.ID  其中ID换成你的主键名称】


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6128525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存