在使用mysql时,有时须要查询出某个字段不反复的记录,尽管mysql提供有distinct这个keyword来过滤掉多余的反复记录仅仅保留一条,但往往仅仅用它来返回不反复记录的条数,而不是用它来返回不重记录的全部值.其原因是distinct仅仅能返回它的目标字段,而无法返回其他字段.经过实验,有例如以下方法能够实现. 举比例如以下: 这是test表的结构 id test1 test2 1 a 1 2 a 2 3 a 3 4 a 1 5 b 1 6 b 2 7 b 3 8 b 2 比方我想用一条…
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但 往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是distinct只能返回它的目标字段,而无法返回其它字段,经过实验, 有如下方法可以实现. 举例如下:这是test表的结构id test1 test21 a 12 a 23 a 34 a 15 b 16 b 27 b 38 b 2比如我想用一条语句查询得到test1不重复的所有数据,…
mysql中select * for update 注: FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效. 作用 锁定该语句所选择到的对象.防止在选择之后别的地方修改这些对象造成数据不一致.要保证在统计(查询)执行过程中,记录不被其他用户更新, 则可以使用For update子句进行加锁.这样在这个锁释放前其他用户不能对这些记录作update.delete和加锁. Select daptno from dept Where …
七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT FIRST N * FROM TABLENAME 3. DB2数据库 SELECT * FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME) WHERE ROWNUM <= N 或者 SELEC…
七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT FIRST N * FROM TABLENAME 3. DB2数据库 SELECT * FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME) WHERE ROWNUM <= N 或者 …
select语句可 以用回车分隔 $sql="select * from article where id=1"和 $sql="select * from article where id=1" 都可以得到正确的结果,但有时分开写或许能 更明了一点,特别是当sql语句比较长时. 批量查询数据 可以用in 来实现 $sql="select * from article where id ;in(1,3,5)" 使用concat连接查询的结果 $sq…
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,例如有如下表user: 用distinct来返回不重复的用户名:select distinct name from user;,结果为: 这样只把不重复的用户名查询出来了,但是用户的id,并没有被查询出来:…
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,例如有如下表user: 用distinct来返回不重复的用户名:select distinct name from user;,结果为: 这样只把不重复的用户名查询出来了,但是用户的id,并没有被查询出来:…
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM foo WHERE b = 1 LIMIT 100,10; 1 另外一种是使用SQL_CALC_FOUND_ROWS 1 2 SELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIMIT 100, 10; SELECT FOUND_ROWS(…
我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename; 然后读取count(*)的值判断记录是否存在.对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来. 以下这个方法是我推荐的. sql语句:select 1 from tablename where col = col limit 1; 然后读取语句执行所影响的行数. 当然这里limit 1很重要.这要mysql找到一条记录后就不会在往下找了.这里执行…