加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

mysql批量更新数据

发布时间:2020-12-15 00:44:07 所属栏目:C语言 来源:网络整理
导读:table class="php" tr class="li1" td class="ln"pre class="de1"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 6
<tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

WHERE other_field ? 如果更新同一字段为同一个值,也很简单,修改下where即可: ? ? ? ? ? UPDATE mytable SET myfield WHERE other_field in ? 这里注意 ‘other_values’ 是一个逗号(,)分隔的字符串,如: ? 那如果更新多条数据为不同的值,可能很多人会这样写: ? ? ? ? ? ? ? WHERE id = " ? ? ? 即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。 ? 那么能不能一条sql语句实现批量更新呢?并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。 ? UPDATE mytable ? ? SET myfield id ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? WHERE id IN ? 这里使用了 when 这个小技巧来实现批量更新。 举个例子: ? ? ? ? ? UPDATE categories ? ? SET display_order id ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? WHERE id IN ? 这句sql的意思是,更新display_order 字段,如果id 则display_order 的值为,如果id 则 display_order 的值为,如果id 则 display_order 的值为。 即是将条件语句写在了一起。 这里的where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有条数据进行更新,而where子句确保只有行数据执行。 ? 如果更新多个值的话,只需要稍加修改: ? ? ? ? ? UPDATE categories ? ? SET display_order id ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? ? ? title id ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? ? ? WHEN THEN ? ? WHERE id IN ? 到这里,已经完成一条语句更新多条记录了。 但是要在业务中运用,需要结合服务端语言,这里以php为例,构造这条语句: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? THEN " )" ? 这个例子,有条记录进行更新。代码也很容易理解,你学会了吗?(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

<table class="php">

    推荐文章
      热点阅读