关于mysql中sql语句where, select, order by与用户自定义变量的疑问

图片说明
图片说明
图片说明
图片说明

环境是mysql5.7
用的数据库是2017/11/17日从mysql官网下的sakila数据库,不知道为什么会出现这种现象。

1

2个回答

原表没有建索引,记录没有按顺序排放,所以你只能用order by 来输出有序的结果。后来你建立了一个索引,该索引应该是唯一的索引,所以在查询时就按唯一的索引的顺序进行了输出。

1

谢谢,请问,第二次查询为什么rownum都是200呢?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于mysql的order by的疑问。
select a, b, c form tb where ... order by [color=#FF0000]id[/color] asc limit 0,100;rnrnselect [color=#FF0000]id[/color], a, b, c form tb where ... order by [color=#FF0000]id[/color] asc limit 0,100;rnrnrn这两个sql返回的数据为什么是不一样的?
mysql的用户变量疑问
mysql的用户变量是如何工作的?rnrn假设有如下sqlrnset @cnt=0;rnselect @cnt:=@cnt+1,tbl.* rnfrom tblrn会得到类似下面的数据rn@cnt:=@cnt+1 | id | cid | name |rn+--------------+----+-----+-------------+rn| 1 | 1 | 1 | post1-1-1 |rn| 2 | 2 | 1 | post1-2-2 |rn| 3 | 3 | 1 | post1-3-3 |rn| 4 | 4 | 1 | post1-4-4 |rn| 5 | 5 | 1 | post1-5-5 |rn| 6 | 6 | 2 | post2-1-6 |rn| 7 | 7 | 2 | post2-2-7 |rn| 8 | 8 | 3 | post3-1-8 |rnrn而使用rnset @cnt=0;rnselect @cnt:=@cnt+1,tbl.* rnfrom tblrnwhere @cnt=1;则没有记录输出rn如果条件改成@cnt=0则会输出第一条记录,不知道MYSQL是计算处理变量的rn
求sql语句 where语句 order by
sqlu="select * from link where "&pl&" like '%"&se&"%'" rn这句是按关键字和编号(从小到大)排列rnselect * from link where "&pl&" like '%"&se&"%' and incount rn我这样写的搜索关键字后有积分的就显示了没有积分的就没有显示。rn我想做成按关键字+积分以大到小排序应该怎么改啊?rn
insert into select order by的疑问???
[code=SQL]rnINSERT INTO TEST_TOrnSELECT TOP 1 *rnFROM TEST_FROMrnORDER BY id DESCrnrnINSERT INTO TEST_TOrn(rnSELECT TOP 1 *rnFROM TEST_FROMrnORDER BY id DESCrn)rn[/code]rn以上两个语句的目的是想从 from 表中获取到 id 最大的那条记录,然后插入表torn为何加了括号把select括起来反而会报错呢?我觉得加了()才更准确并且才能正确,rnrn为何执行效果恰好相反呢[第一个是正确,而第二个错误]?
求助 关于select where中嵌套select的sql语句的问题
目前在做一个小型的微波当做毕业设计,在显示用户状态出了点问题rnrn$sql=[color=#00CCFF]"select * from tb_content where author =(select attractior from tb_friends where fans='".$_SESSION["nickname"]."') order by id desc limit $temp,$list_num ";[/color]rn$results=mysql_query($sql,$link);rnwhile($myrow=mysql_fetch_array($sql)) //进入了一个显示用户的循环rn这是我两个表的图[img=http://hiphotos.baidu.com/xiao_ciwei/pic/item/a70377310a55b319a7022dcf43a98226cdfc17d4.jpg][/img]rn现在的问题就是如果我只关注一个人,那么没问题,正常显示,关注两个人以上的话,页面就会报错,具体错误是rnWarning:[color=#FF0000] mysql_num_rows() expects parameter 1 to be resource, boolean given in[/color] D:\wamp\www\YourBlog\showmodel.php on line 16
mysql 用户自定义变量
首先推荐一个博客: http://blog.itpub.net/29254281/viewspace-1415038/ 这里面详细的介绍了怎么使用自定义变量 ,我这里本是发出一些疑问: 一、  set @rownum:=0; select disease,rn,@rownum,@rownum:=@rownum+1 as cmt from disease_code where @rownu
sql语句select group by order by where一般先后顺序
sql语句select group by order by where一般先后顺序rnrn好久不用了,都忘了,需要恶补。。能讲下吗 谢谢
关于mysql的sql语句的疑问
以前用的都是sql server和db2,现在做mysql。rn碰到一个sql语句:rnselect max(id),user_id,namernfrom userrngroup by user_id;rnrn当时看的时候以为sql语句写错了,因为通过group by user_id时,name列未指定使用分组后的哪一行,然后尝试执行了一下,原来在mysql中这个sql语句没有问题。rn请问:这个在sql server和db2下执行有问题的sql在mysql下执行,name列会取分组后的哪一行?
关于select 语句的疑问?
书上说此语句是个单行检索语句,用于从数据库中检索一条记录,如果找到多条满足条件的记录,则产生错误rnrn好象我在运行时没有错误产生呢rnrn谁能说明一下原因吗?rnrn
数据库之SQL(基础SELECT语句及ORDER BY 语句)
     SQL中的查询语句还是很多的,看得有没有眼花缭乱吖,现在让我们一起以问题的形式来过一下SELECT的查询语句吧^_^一、我们在SQL中常见的SELECT语句有哪些?二、如何查询数据表中的全部数据?1.select list(*全部) from table三、如何查询表中具体列的数据?四、简单的SELECT还有哪些功能?运算五、如何给运算的列加标题?加入一个AS语句六、查询结果中怎么消除...
SQL中 WHERE 后 LIKE %(select语句)%
SQL中 WHERE 后 LIKE %(select语句)% 如何实现
关于select where 语句的问题
如下一个语句:rn$wuyan_s1='select * from wuyan_d where z1=5 order by rand()';rnrn在这个语句中,将从数据库随机起一条满足z1=5条件的数据,当没有符合条件的数据时,$wuyan_s1将为空。我现在要问的是,如果数据库中没有符合条件的数据时,能不能随机起一条数据,这样语句该如何修改。rnrn
MySQL中的where语句
我们知道从MySQL表中使用SQL SELECT 语句来读取数据。 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。语法SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2..... 查询语句中你可以使用一个或者
关于SQL中ORDER BY的用法的疑问
LOCAL SQL中规定ORDER BY 的字段必须出现在结果集中.rn有什么方法可以在结果集中不出现该字段的情况下使用ORDER BY呢?rn即使如下的语句合法,而功能不变.rnSELECT URLrnFROM URL.DBrnWHERE URL_ID>10rnORDER BY CLICKCOUNT DESC //CLICKCOUNT是URL.DB中的一个字段.rnrn
select * from 变量 where 变量
如题,当表名与查询条件都是变量时该怎么写!谢谢!!
mysql order by的疑问
遇到这样一个问题 ,因为要分别取最早和最近的值,用了order by create_time asc 和order by create_time desc ,但是asc的耗时为30s,desc的耗时0.1s。相差很大,怎么解决?rntest 表的 uid和create_time都建了索引,rnselect * from test where uid in (141) order by create_time asc limit 1rn
select在where引入变量
举个例子,定义变量myidrnselect * from table where id = myid;rn这样子的select子句怎么实现,具体点,小弟没有搞定,大家帮帮忙rn我用的数据库是psql
关于MySQL中select语句
我以前在使用MySQL时发现有一句select语句:select top5 from tbl1 group by userid having SUM(points)>50(eg)。在最新的版本中是否有效?如何有效这样写对不对?
select 语句order by问题
表1rn序号sn 姓名namern1 张1rn2 李2rn3 张1rn4 李3rnrn如何能得到按序号123排序的姓名(去除重复项的),只要姓名不要需要序号rnrnselect distinct name from tb1 order by sn ----结果肯定是不对的,因为sn必须出现在select中rn应该怎么做呢?谢谢!rnrn
关于where和order by的问题
sprintf(buff, "select * from selectFood where selectFoodTime >= '2006-6-20 00:00:00' \rn && selectFoodTime <= '2009-1-01 23:59:59' \rn order by selectFoodTime desc");rn order by tableID desc ");rn上面的程序运行时出错。提示:Segmentation faultrn不知道是什么原因。求高人指教!多谢!
请教where and order by语句与索引
select * from 表 where uid=? and cid=? order by id desc limit ? ?;rn其中id,uid,cid都是int类型,ID为主键,其他两个为keyrn十万数据测试,每页各5行,两千多面点到尾页也很快rn然而在explain 的时候,却Extra:Using where; [color=#FF0000]Using filesort[/color]rn type: ref, ref: const,constrn请教是应该如何优化查询语句还是索引?
SQL中select语句的一个疑问
以下一条select语句,rnmySql="select Article from user where UserName='"&username&"'"rn这样看应该是没任何问题的吧,当在asp页面里执行时“Microsoft Script Debugger”老是提示“from字句语法错误”,但我把原句中的表名“user”改为“[user]”后,语句正常运行,请问众位高人这是为何,user和[user]的区别在哪里?谢谢了。rnrn
Oracle(1)select、where、优先级、order by、host变量
查看数据库进程 # ps -ef | grep ora_ 只查看oracle数据库进程 连接到数据库软件 $ sqlplus / as sysdba 看到以下说明已经连接: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partiti...
sql的select语句where like 变量,格式应该是怎么样的?
变量a为string型rn选择字段值包含变量a的记录,应该是什么样的格式啊?
mysql select from where and or 语句问题
数据表table中有字段a,b,c,d。其中字段a,b值为0或1;c,d值为0或1。现在使用select语句,筛选出ab字段为1,cd字段有一个为1。nselect * from table where a=1 and b=1 and(c=1 or d=1);n这么写选不出来,求正确写法,谢谢
MySQL基础自定义变量—用户变量
<p>rn <br />rn</p>rn<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价7016元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<span>&nbsp;</span> rn<p>rn <br />rn</p>rn<p>rn Java全程课程的第一阶段,主要讲授java语言基础,涉及变量、流程控制、面向对象、IO流、集合框架、多线程、网络编程,以及常用的MySQL数据库及Java操作数据库的技术JDBCrn</p>
select form where 语句
select form where 语句
关于SELECT语句使用疑问~~~~~!
"SELECT * FROM tdSysModule WHERE mid(SortNumber,1,3)='0011' AND (Flag IS NULL OR Flag=0) ORDER BY ID"rnrn上述语句在ACCESS中可正常执行,但在SQL-Server 2000中却提示错误信息:rnrn"MID为不可识别函数".rnrn上述语句在SQL中运行还需做相应修改吗?rnrn等待中.....
MySQL C API 中关于 select * 的疑问
MySQL C API 执行 select 语句后有1百万条记录,rn而我只需要100条记录,但是调用 mysql_free_result()仍然会等到所有记录从服务器端返回rn测试过很多MySQL客户端,全部都是等到所有记录都返回到客户端rn不知道有什么方法,能在我读完100条记录后,中止当前记录的传输rn(limit 能限制select返回的行数,但这不是我想要的结果,rnMySQL的配置变量,也做不到控制返回的行数或内存)rnrn在SQL Server中, 即使select 有1百万记录rnoledb 在处理记录集的时候可以随时中止rnrnrn有对MySQL C API 熟悉的,能帮忙给个提示吗
关于 select 语句order by关键字的疑惑?
SELECT 规格编号, a板, b板, a型, format(a型/right(规格编号,2)*24,'0.00') FROM bigmornWHERE left(规格编号,2)=20 and a板=30 and b板=50rnORDER BY 5rnrn注意:我的本意是想将 "format(a型/right(规格编号,2)*24,'0.00') "字段排序.rn但是,执行该语句后 vb 即不报错也没有进排序????rnrn
这条sql( select where ) 语句怎么写
表结构:rnid (int) 4 自增rnversion (varchar ) 50rnrn内容:rnid versionrn1 5,6,7 rn2 7rnrn如果传进来的值是5或6时 select 后只有第一条记录集rn如果传进来的值是7时, select 后有(1,2)两条记录集?
sqlite数据库—select—order、where、like用法
1. 利用抓取到的数据SpiderResult.db3建立数据库 点击连接(connection),选中“现有数据库文件”,并找到数据库文件(若没有数据库的用户名密码可以忽略) 点击确定,即可在在sqlite中看到文件的全部信息2. 利用sql语句查询并筛选需要的数据   a) 使用说明:点击query表示查询,点击新建开始输入命令,点击运行开始运行b) select * from 表名 (查询全...
关于rownum和order by的疑问
在oracle中如果rownum与order by同在,是先rownum,然后再order by rnrn如 select * from 表明 where rownum<10 order by 字段rn这样会先取rownum小于10的记录,然后再对这10条进行排序rnrn但是,有文章说如果对排序字段建立了所以,则上面的语句就能产生先排序,再rownum的效果。rnrn但是经过我测试,好像建立索引不行,数据条数的物理存储顺序并没有改变,只有建立主键后,才能实现上述的结果。rnrn有没有其他解决方法能先排序在rownum ,嵌套的方法不算,如下这样的rnselect * from (select * from 表明 order by 字段) where rownum < 10
关于order by的疑问
[code=SQL]rncreate table tb as select level id from dual connect by level <=10;rnSQL> select id from tb order by (case when id >= 5 then id-10 else id end);rn rn IDrn----------rn 5rn 6rn 7rn 8rn 9rn 10rn 1rn 2rn 3rn 4rn rn10 rows selectedrn--如何理解输出结果:5,6,7,8,9,10,1,2,3,4?rn(1).select id from tb;rn(2).select id from tb order by null;rn(3).select id from tb order by null desc;rn(4).select id from tb order by sysdate;rn--1-3都是按数据的插入顺序排序,4是按什么排序呢?(我这测试它与1-3不同)rnrnrn(5)select id from tb order by id;rn(6)select id from tb order by max(id);rn(7)select id from tb order by min(id);rn--为什么(5)-(7)是一样的顺序? 将max(id)和min(id)换成具体的值又会报错?rnselect id from tb order by max(id) 的执行顺序是怎样的?rn[/code]
关于SQL语句的疑问
有这样一段代码:rnrnStringBuilder s=new StringBuilder("select OrderID,c.CompanyName,c.ContactName,");rns.Append("c.ContactTitle,c.Phone,orderDate");rns.Append("from orders o");rns.Append("join customers c on c.CustomerID=o.CustomerID);rnrn我不明白的是,其中有很多类似c.CompanyName这样的字段,这里的小c代表什么,为什么可以这样用啊?我猜想它在这里代表的是某个表,难道就这么直接用吗?需要声明什么的吗?小弟新手,还请高手解答,谢谢!rn主要说说问什么要这样写即可。
关于sql语句疑问
update 表rnsetrn 字段名=:字段名rn wherern jjd_no = :OLD_jjd_nornrnrninsert into zhang_jjdrn (子段名列表)rnvaluesrn (:字段1,:字段2...)rnrnrn1.insert 中的冒号是何含义?rn2.modify中的=:..又是何含义?rn3.delete中的old的含义? (无OLD_jjd_no字段,有jjd_no字段)rn
疑问:关于SQL 语句
[code]rnCREATE DATABASE MyBBSrnGOrnrnUSE MyBBSrnGOrnrnCREATE TABLE [dbo].[Reply] (rn [ReplyID] [int] IDENTITY (1, 1) NOT NULL ,rn [TopicID] [int] NULL ,rn [UserLoginName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,rn [Title] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,rn [Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,rn [CreateTime] [datetime] NULL ,rn [IP] [char] (15) COLLATE Chinese_PRC_CI_AS NULL rn) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]rnGOrnrnCREATE TABLE [dbo].[Topic] (rn [TopicID] [int] IDENTITY (1, 1) NOT NULL ,rn [UserLoginName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,rn [Title] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,rn [Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,rn [CreateTime] [datetime] NULL ,rn [IP] [char] (15) COLLATE Chinese_PRC_CI_AS NULL rn) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]rnGOrnrnCREATE TABLE [dbo].[User] (rn [UserID] [int] IDENTITY (1, 1) NOT NULL ,rn [LoginName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,rn [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,rn [Password] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,rn [Address] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,rn [Homepage] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,rn [Email] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL rn) ON [PRIMARY]rnGOrn[/code]rn
自定义变量—用户变量
·本视频涵盖MySQL核心技术主要知识点,每节知识配套对应练习。主要包含数据库和表的常用操作、约束、视图、存储过程和函数、流程控制结构以及综合运用各种命令实现数据的增删改查操作。本课程的目标是“看得懂、学得会、做得出”,为后续的学习打下夯实的基础。
select * from BigClass where FatherID=? order by Order desc
select * from BigClass where FatherID=? order by Order descrnrnrnorder by 这里咋错了 ACCESS数据库
SQL ORDER BY自定义排序规则
默认SQL语句中的order by会根据指定字段的内容按照默认规则排序,比如说我现在有这样一个表: id level name 2 中 刘德华 3 低 张惠妹 1 高 陈冠希 可以使用下面的语句来自定义排序规则(按照高中低的顺序)  SELECT * FROM stars ORDER BY ( CASE level ...