Mysql数据查询问题!

Mysql数据查询问题!,第1张

如果你这个数据时唯一的,并且不间断的id号的话就

select * from table where id >10100 and id <10111

不过能够这么存数据的情况不多。你可以用这个

select * from table where id >10100 asc limit 10

这样子,如果10100到10111区间的记录不够10条,会取10110后边的记录

select * from table where id <10100 and id <10111 asc limit 10

这样子就只去区间的记录,如果区间的记录不够10条,也不会多取。

你这种格式的没有,不过这个变量还是可以用下面这种方法实现的。

mysql>delimiter //

mysql>

mysql>CREATE PROCEDURE curdemo(IN V_GROUP INT)

->BEGIN

-> DECLARE done INT DEFAULT 0

-> DECLARE a INT

-> DECLARE b CHAR(16)

->

-> DECLARE cur1 CURSOR FOR SELECT id,name FROM student where classid=V_GROUP

-> DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1

->

-> OPEN cur1

->

-> REPEAT

->FETCH cur1 INTO a, b

->select a,b

-> UNTIL done END REPEAT

->

-> CLOSE cur1

->END

->

->

->//

Query OK, 0 rows affected (0.20 sec)

mysql>

mysql>delimiter

mysql>

mysql> SELECT id,name,classid FROM student

+----------+--------+---------+

| id | name | classid |

+----------+--------+---------+

| 91010101 | 丁乙甲 | 10101 |

| 91010102 | 索春龙 | 10101 |

| 91010103 | 刘莉莉 | 10101 |

| 91010104 | 隋鑫 | 10101 |

| 91010105 | 长命 | 10101 |

| 91010201 | 河江山 | 10102 |

| 91010202 | 祝立业 | 10102 |

| 91010203 | 姚桂娇 | 10102 |

| 91010204 | 张冬梅 | 10102 |

| 91020101 | 蒋旭 | 10201 |

| 91020102 | 邱介臣 | 10201 |

| 91020103 | 王晓燕 | 10201 |

| 91020104 | 夏丽佳 | 10201 |

| 91020201 | 熊建业 | 10202 |

| 91020202 | 丛俊江 | 10202 |

| 91020203 | 周静燕 | 10202 |

| 91020204 | 黄爽 | 10202 |

| 91020301 | 魏国兴 | 10203 |

| 91020302 | 蒋洪涛 | 10203 |

| 91020303 | 倪春红 | 10203 |

| 91030101 | 张文天 | 10301 |

| 91030102 | 姜洋 | 10301 |

| 91030103 | 赵聪 | 10301 |

| 91030201 | 王飞 | 10302 |

+----------+--------+---------+

24 rows in set (0.00 sec)

mysql>

mysql>CALL curdemo(10101)

+----------+--------+

| a| b |

+----------+--------+

| 91010101 | 丁乙甲 |

+----------+--------+

1 row in set (0.00 sec)

+----------+--------+

| a| b |

+----------+--------+

| 91010102 | 索春龙 |

+----------+--------+

1 row in set (0.00 sec)

+----------+--------+

| a| b |

+----------+--------+

| 91010103 | 刘莉莉 |

+----------+--------+

1 row in set (0.00 sec)

+----------+------+

| a| b|

+----------+------+

| 91010104 | 隋鑫 |

+----------+------+

1 row in set (0.00 sec)

+----------+------+

| a| b|

+----------+------+

| 91010105 | 长命 |

+----------+------+

1 row in set (0.00 sec)

+----------+------+

| a| b|

+----------+------+

| 91010105 | 长命 |

+----------+------+

1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql>

常见的插入方式有以下几种:

这种方式每次只能插入一行

且set从句内的values不能全部为空

这种方式可以一次性插入多行

不同行之间的数据要 用逗号进行分隔

这种方式用于替换表中的某一行

若新插入记录的主码已经存在于表中,则用新记录替换旧记录

若新插入记录的主码不在表中,则直接插入新记录

普通的update语句写法如下:

例如:在instructor(教师信息)表中

我们想更新 ID为10101的教师的工资为70000

对于更复杂的数据更新 我们可以添加 case-when从句

从而实现对数据的分类更新

例如:在instructor(教师信息)表中 对所有教师进行涨薪

对工资小于等于100000的涨薪5%,其他人涨薪3%


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

原文地址: https://outofmemory.cn/zaji/7521083.html

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

发表评论

登录后才能评论

评论列表(0条)

保存