SQLite, MySQL, PHP: Ternary operator (IF() statement) in MySQL and SQLite SQLite, MySQL, PHP: trīskāršu operators (IF () paziņojums) in MySQL un SQLite
Posted on 03. Posted on 03. Feb, 2010 by Dragos in Coding , MySQL , PHP , SQLite Feb, 2010 Dragos in Kodēšana, MySQL, PHP, SQLite
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). Strādājot ar proxy checker līdzeklis, viens no maniem projektiem, es biju cīnās par to, kā izpildīt nosacījumu vaicājumu par manu SQLite datubāzes atjauninājumu kolonna tikai tad, ja tā vērtība ir lielāka par 0 (tas būtu bezjēdzīgi manā gadījumā ļaut script update kolonna ar negatīvu vērtību).
In Mysql one would do like this (we use the ternary operator IF(to_check_expression>0,expression1,expression2) ): Vienā Mysql darītu šādi (mēs izmantojam trīskāršo operators IF (to_check_expression> expression1 0,, expression2)):
update table_name set column_name=IF((column_name-1)>0,(column_name-1),0)
However, in SQLite this method will not work. Tomēr SQLite šī metode nedarbosies. Instead I had to use the case when (condition) then expression1 else expression2 end method. Tā vietā man nācās izmantot gadījumā, ja (nosacījums), tad expression1 vēl expression2 end metodi.
The above query in MySQL can be rewritten like this in SQLite: Iepriekš vaicājumu MySQL var pārrakstīt kā tas SQLite:
update table_name set column_name=case when (column_name-1)>0 then (column_name-1) else 0 end
That's it. That's it. I hope it helps someone! Es ceru, ka tas palīdz kāds!
Related posts: Related posts:












































