mysql 查询记录行数

mysql 查询记录行数,第1张

试试这样能查询到正确的结果吗?

select SUM(DISTINCT writerid) as dd from article where concat_ws(',',title,introduce) like '环境'

如果字符串可以用<,>符号比较的话(停电用手机无法验证能不能用)

假设你主键名称是Z,表为T

前一行:

select TOP1 Z from T where Z>'UUID' order by Z DESC

后一行:

select TOP1 Z from T where Z<'UUID' order by Z

合并:

在中间加 UNION ALL

这个不行就去查游标使用吧

Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数;但在 MySQL 中似乎还没有这样的系统自带功能。虽然 LIMIT 可以很方便的对返回的结果集数量和位置进行过滤,但过滤出来的记录的行号却没办法被 SELECT 到。据说 MySQL 是早就想增加这个功能了,但我是还没找到。 解决方法是通过预定义用户变量来实现:set @mycnt = 0; select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol; 这样查询出来的结果集中 ROWNUM 就保存了行编号信息。这个行编号信息的某种用途在于当你需要根据需要对数据按照某种规则排序并取出排序之后的某一行数据,并且希望知道这行数据在之前排序中的位置时就用得着了。比如: set @mycnt = 0; select from ( select (@mycnt := @mycnt + 1) as ROWNUM , othercol from tblname order by othercol ) as A where othercol=OneKeyID; 当然你也可以通过创建临时表的方法把查询结果写到某个拥有 auto_increment 字段的临时表中再做查询,但考虑到临时表在 MySQL master / slave 模式下可能产生的问题,用这样临时用户定义变量的方式来计算查询结果集每一行对应的行号还是更为简洁 -- 除非你愿意在 PHP 或其他语言脚本中对返回的整个结果集再作处理。

这样的需求的话,那么你需要把第一次查询到的结果保存下来。即通过 select from my where name = 'xbxy'所查到的结果集合存为一个对象,然后要用它的数据时就可以直接读取该对象的属性而无需再次访问数据库了(当然前提是表里的数据没有改变)。但这样只局限于单次的事务 *** 作,如果当前的事务 *** 作完成了,后续 *** 作不再需要它了,或后续进行的是其他类型的事务 *** 作,那么很可能需要再次重新读取数据库。

本扩展自 PHP 550 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL:选择 API 指南以及相关 FAQ 以获取更多信息。用以替代本函数的有:

mysqli_affected_rows()

PDOStatement::rowCount()

说明

int mysql_affected_rows ([ resource $link_identifier = NULL ] )

取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

参数

link_identifier

MySQL 连接。如不指定连接标识,则使用由 mysql_connect() 最近打开的连接。如果没有找到该连接,会尝试不带参数调用 mysql_connect() 来创建。如没有找到连接或无法建立连接,则会生成 E_WARNING 级别的错误。

返回值

执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。

如果最近一次 *** 作是没有任何条件(WHERE)的 DELETE 查询,在表中所有的记录都会被删除,但本函数返回值在 412 版之前都为 0。

当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。

REPLACE 语句首先删除具有相同主键的记录,然后插入一个新记录。本函数返回的是被删除的记录数加上被插入的记录数。

"INSERT ON DUPLICATE KEY UPDATE" 这种情况的查询,当执行了一次 INSERT 返回的值会是 1;如果是对已经存在的记录执行一次 UPDATE 将返回 2。

以上就是关于mysql 查询记录行数全部的内容,包括:mysql 查询记录行数、mysql如何取得当前行数据的的上一行和下一行数据、如何在MySQL查询结果集中得到记录行号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9517353.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存