2011-09-06 4 views
1

SQLite에서 실행하려고하는 MySQL 쿼리가 있습니다. IF 조건이 SQLite에서 작동하지 않고, CASE으로 변환되어야한다는 것을 알았습니다. MySQL 쿼리가 개요를보기에 꽤 크기 때문에, 어떻게해야 하는지를 누군가가 알 수 있기를 바랍니다. 다른 많은 MySQL 쿼리 중 하나에서 SQLite로 변환해야합니다.SQLite 및 If() 조건

일단 내가 사용하는 쿼리에서 어떻게해야하는지 알게되면 (다른 사람들에게 익숙하기 때문에) 다른 사람들을 위해 처리 할 수 ​​있다고 가정합니다.

select 
p.products_model, 
pd.products_name, 
m.manufacturers_name, 
p.products_quantity, 
p.products_weight, 
p.products_image, 
p.products_id, 
p.manufacturers_id, 
p.products_price, 
p.products_tax_class_id, 
IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, 
IF(s.status, s.specials_new_products_price, p.products_price) as final_price 
from 
products_description pd, 
products p 
left join manufacturers m on p.manufacturers_id = m.manufacturers_id 
left join specials s on p.products_id = s.products_id, 
products_to_categories p2c 
where 
p.products_status = "1" and 
p.products_id = p2c.products_id and 
pd.products_id = p2c.products_id and 
pd.language_id = "1" and 
p2c.categories_id = "10" 

답변

4

변경 : 여기 SQLite는에 실행해야합니다 MySQL의입니다

IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, 
IF(s.status, s.specials_new_products_price, p.products_price) as final_price 

CASE 
    WHEN s.status <> 0 AND s.status IS NOT NULL 
    THEN s.specials_new_products_price 
    ELSE NULL 
END AS specials_new_products_price, 
CASE 
    WHEN s.status <> 0 AND s.status IS NOT NULL 
    THEN s.specials_new_products_price 
    ELSE p.products_price 
END AS final_price 
+0

주셔서 감사합니다! (무슨 코드 pfff의 loth, 내가 큰 화면을 고려해 볼게) – wHiTeHaT

+0

조금 abouth 귀하의 프로필을 읽었어요, 아마도 당신이 이러한 기술을 이미 제어 할 수 있지만이 URL을 제공하고 싶습니다 : http : // html5sql. co.kr/index.html – wHiTeHaT

+0

@wHiTeHaT : 감사합니다. 확인해 보겠습니다. :) – mwan