大家好,
假设我们有一个表,其中的值按组划分,并且我们只想为每个组更改一行。让我们举一些例子这是开始的情况:
ID | CODE | DEFAULT
-----+----------+-----------
1 | 1234 | 0
2 | 1234 | 0
3 | 1234 | 0
4 | 5678 | 0
5 | 5678 | 0
6 | 7777 | 0
7 | 8888 | 0
8 | 8888 | 0
9 | 8888 | 0
我们想更新DEFAULT
,但每个只更新一次CODE
:
ID | CODE | DEFAULT
-----+----------+-----------
1 | 1234 | 0
2 | 1234 | 1
3 | 1234 | 0
4 | 5678 | 1
5 | 5678 | 0
6 | 7777 | 1
7 | 8888 | 0
8 | 8888 | 0
9 | 8888 | 1
我们更新哪个并不重要,我们只想要一个CODE
。
实际上,我只能在一个SELECT DISTINCT
then 处思考,使用循环,SELECT ... LIMIT 1
然后,如果有结果,UPDATE
但这确实是一个肮脏的解决方案......我确信它可以通过一个(或几个)查询来完成...
有任何想法吗?