P粉3389695672023-08-30 10:05:32
해결책:
으아악지침:
가장 깊은 쿼리
으아악는 WHERE NOT EXISTS
条件,检测是否已存在包含要插入数据的行。找到此类的一行后,查询可能会停止,因此LIMIT 1
로 사용됩니다(미세 최적화, 생략 가능).
중간 쿼리
으아악는 삽입할 값을 나타냅니다. DUAL
是指所有 Oracle 数据库中默认存在的一种特殊的单行单列表(请参阅 https://en.wikipedia.org/wiki/DUAL_table)。在 MySQL-Server 版本 5.7.26 上,当省略 FROM DUAL
时,我得到了有效的查询,但旧版本(如 5.5.60)似乎需要 FROM
信息。通过使用 WHERE NOT EXISTS
, 가장 안쪽 쿼리가 일치하는 데이터를 찾으면 중간 쿼리는 빈 결과 집합을 반환합니다.
외부 쿼리
으아악데이터를 삽입합니다(중간 쿼리가 데이터를 반환하는 경우).
P粉5210131232023-08-30 00:40:11
사용INSERT IGNORE INTO table
.
또한 INSERT … ON DUPLICATE KEY UPDATE
13.2.6.2 INSERT ... ON DUPLICATE KEY UPDATE 문 에서 사용할 수 있는 구문이 있습니다.
포스트 출처: bogdan.org.ua Google 웹 캐시 기준: