MySQL에서 행 인덱스와 하드코딩된 값을 사용하여 전체 열을 업데이트하는 방법
P粉362071992
2023-08-26 15:24:30
<p>행 색인 + email@gmail.com 형식을 사용하여 전체 <strong>email</strong> 열을 업데이트하고 싶습니다. </p>
<p>이것은 내 테이블에 있는 데이터입니다</p>
<테이블 클래스="s-테이블">
<머리>
<tr>
<번째> ID
<번째> 이메일
</tr>
</머리>
<본문>
<tr>
<td>12</td>
<td>abc@gmail.com</td>
</tr>
<tr>
<td>23</td>
<td>pqr@gmail.com</td>
</tr>
</tbody>
</테이블>
<p>이것이 제가 원하는 결과입니다</p>
<테이블 클래스="s-테이블">
<머리>
<tr>
<번째> ID
<번째> 이메일
</tr>
</머리>
<본문>
<tr>
<td>12</td>
<td>1email@gmail.com</td>
</tr>
<tr>
<td>23</td>
<td>2email@gmail.com</td>
</tr>
</tbody>
</테이블>
<p>아래 쿼리를 시도했지만 예상한 결과를 얻지 못했습니다. </p>
<pre class="brush:php;toolbar:false;">C를 사용하여
(
이메일, row_number() 이상(ID 오름차순으로 주문)을 rowid로 선택하세요.
쿠스에서
)
업데이트 C
이메일 설정 = rowid+'email@gmail.com'</pre>
<p>그것은 단지 3개의 행이 아닙니다. 내 <code>cus</code> 테이블에는 500개 이상의 행이 있습니다. 누군가 나에게 루프가 필요하지 않은 솔루션을 제공할 수 있다면 더 좋을 것입니다. SQL 쿼리를 작성하는 데 도움을 주세요. 감사해요. </p>
이 방법은 작동하는 것 같지만, 조인을 사용하지 않아도 되는 더 우아한 솔루션이 있다고 생각합니다...
으아악전체 테스트
으아악아마도 이것이 당신이 하고 싶은 일일 것입니다:
으아악업데이트하려는 테이블(
cus
)与C
的cte
)을 연결한 다음 그에 따라 업데이트하세요.여기 데모가 있습니다
@QisM은 실제로
으아악email
不唯一时的语法提出了疑虑,由于OP没有提到,我同意如果email
에만 고유한 것이 아니며, 이는 해결책이 아닙니다. 그래서 구문을 약간 수정했습니다.지금 확인해보세요
cte
带有id
,并且在JOIN C ON ..
条件中,我添加了匹配id
. 테스트 후 이렇게 하면 이메일이 고유하지 않은 경우 문제가 해결됩니다.