$sql = "SELECT c.id as c_id, w.id as w_id, c.city as cms_city,
s.id as state_id, s.state_code as state
FROM `cms_hotel` as c
join webgeocities as w on c.city=w.name
and c.country_code=w.country_code
join states as s on (w.state_code= s.state_code)
group by c.id";
$result = mysqli_query($conn,$sql) or die(mysqli_error());
while($row = mysqli_fetch_array($result)){
$upd = "update cms_hotel set city_id = '".$row['w_id'].
"' where id = '".$row['c_id']."'";
$upd_result = mysqli_query($conn,$upd) or die(mysqli_error());
$sel = "select id from city_matching where city='".$row['cms_city'].
"' and state_id='".$row['state_id']."'";
$sel_result = mysqli_query($conn,$sel) or die(mysqli_error());
if (mysqli_num_rows($sel_result) == 0) {
$ins = "insert into city_matching
set city_name = '".$row['cms_city'].
"' , state_id = '".$row['state_id']."'";
$ins_result = mysqli_query($conn, $ins) or die(mysqli_error());
}
}
0
A
답변
0
코드에서 루프와 SELECT
표현식을 제거하십시오. 실행 다음 쿼리 :
업데이트 :
UPDATE `cms_hotel` as c
JOIN webgeocities as w ON c.city = w.name
AND c.country_code = w.country_code
JOIN states AS s ON w.state_code = s.state_code
SET c.city_id = w.id,
GROUP BY c.id
삽입 : 쿼리보다 실행
INSERT INTO city_matching (city_name, state_id)
SELECT c.city, s.id
FROM `cms_hotel` as c
JOIN webgeocities as w ON c.city = w.name
AND c.country_code = w.country_code
JOIN states AS s ON w.state_code = s.state_code
LEFT JOIN city_matching AS cm ON cm.city=c.city
AND cm.state_id=s.id
WHERE cm.city IS NULL
GROUP BY c.city, s.id
관련 문제
- 1. mysql 같은 쿼리를 최적화하십시오.
- 2. UNION mysql 쿼리를 최적화하십시오.
- 3. JOIN으로 MySQL 수 쿼리를 최적화하십시오.
- 4. 간단한 mysql 업데이트 쿼리를 최적화하십시오.
- 5. 정렬과 그룹을 결합하여 MySQL 쿼리를 최적화하십시오.
- 6. 인덱스를 사용하여 mysql 조인 쿼리를 최적화하십시오.
- 7. postgresql 쿼리를 최적화하십시오
- 8. NHibernate 쿼리를 최적화하십시오.
- 9. 복잡한 SQL 쿼리를 최적화하십시오.
- 10. LINQ OrderByDescending 쿼리를 최적화하십시오.
- 11. 쿼리 계획을보고 쿼리를 최적화하십시오.
- 12. LINQ 쿼리를 최적화하십시오.
- 13. 큰 MySQL ResultSet을 최적화하십시오.
- 14. Sitecore Lucene/Solr 쿼리를 최적화하십시오.
- 15. codeigniter에서 쿼리를 만드는 방식을 최적화하십시오.
- 16. SQL 서버에서 커서 쿼리를 최적화하십시오.
- 17. mysql에서 역방향 LIKE 쿼리를 최적화하십시오.
- 18. 두 개의 쿼리를 하나로 최적화하십시오.
- 19. 여러 조인을 사용하여이 쿼리를 최적화하십시오.
- 20. IN 항목이 많은 쿼리를 최적화하십시오.
- 21. 20 개 이상의 인라인 테이블을 포함하는 mysql 쿼리를 최적화하십시오.
- 22. 인덱스를 사용하기 위해 mysql 내부 조인 쿼리를 최적화하십시오.
- 23. 많은 IF 조건을 사용하여 MySQL SELECT 쿼리를 최적화하십시오.
- 24. 복수 선택 조건을 기반으로 선택 쿼리를 최적화하십시오.
- 25. pk 앞뒤에 행을 선택하는이 쿼리를 최적화하십시오.
- 26. 인덱스에서 튜플을 직접 가져 오도록 쿼리를 최적화하십시오.
- 27. XML 인라인 함수에 대해이 SQL 쿼리를 최적화하십시오.
- 28. 가능한 경우 간단한 SQLite 쿼리를 최적화하십시오!
- 29. 15 % CPU 시간을 사용하는 SQL 쿼리를 최적화하십시오.
- 30. 두 개의 COUNT/DISTINCT 쿼리를 최적화하십시오.
내가 cms_hotel 테이블에 기록 수백만이 그렇게 내가 원하는 가장 최적화 방법. –