SQLite, MySQL, PHP: Ternary operator (IF() statement) in MySQL and SQLite СКЛите, МыСКЛ, ПХП: Тројни оператера (АКО () изјава) у МыСКЛ и СКЛите
Posted on 03. Постед он 03.. Feb, 2010 by Dragos in Coding , MySQL , PHP , SQLite Феб, 2010 од Драгош у кодирању, МыСКЛ, ПХП, СКЛите
While working on a proxy checker tool for one of my projects, I was struggling on how to execute a conditional query on my SQLite database to update a column only if its value is greater than 0 (it would be pointless in my case to let the script update the column with negative values). Док ради на прокси контролор алатка за један од мојих пројеката, био сам се боре како да извршава условно упита на мој СКЛите базе података за ажурирање колона да је само ако је његова вредност већа од 0 (то би било бесмислено у мом случају да се нека скрипта ажурирање колона са негативне вредности).
In Mysql one would do like this (we use the ternary operator IF(to_check_expression>0,expression1,expression2) ): У МыСКЛ једну би урадио овако (ми користимо тернерних оператора АКО (то_цхецк_експрессион> 0, експрессион1, експрессион2)):
update table_name set column_name=IF((column_name-1)>0,(column_name-1),0)
However, in SQLite this method will not work. Међутим, у СКЛите овај метод неће радити. Instead I had to use the case when (condition) then expression1 else expression2 end method. Уместо тога сам морао да користи случај када (услов), онда експрессион1 друго експрессион2 крај методу.
The above query in MySQL can be rewritten like this in SQLite: Изнад упит у МыСКЛ могу преписивати попут овог у СКЛите:
update table_name set column_name=case when (column_name-1)>0 then (column_name-1) else 0 end
That's it. То је то. I hope it helps someone! Надам се да помазе некоме!
Related posts: Повезани постови:












































