SQLite, MySQL, PHP: Ternary operator (IF() statement) in MySQL and SQLite SQLite, MySQL, PHP: ternära operatör (OM () uttalande) i MySQL och SQLite
Posted on 03. Skrivet den 03. Feb, 2010 by Dragos in Coding , MySQL , PHP , SQLite Februari, 2010 av Dragos i Coding, 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). Under arbetet med en proxy brocket verktyg för ett av mina projekt var jag kämpade om hur man genomför ett villkorat fråga på min SQLite-databas för att uppdatera en kolumn endast om dess värde är större än 0 (det skulle vara meningslöst i mitt fall att låta script uppdatera kolonnen med negativa värden).
In Mysql one would do like this (we use the ternary operator IF(to_check_expression>0,expression1,expression2) ): I Mysql man skulle göra så här (vi använder ternära operatören IF (to_check_expression> 0, expression1, expression2)):
update table_name set column_name=IF((column_name-1)>0,(column_name-1),0)
However, in SQLite this method will not work. Dock kan SQLite den här metoden inte fungerar. Instead I had to use the case when (condition) then expression1 else expression2 end method. Istället var jag tvungen att använda fallet när (villkor) då expression1 annat expression2 slut metod.
The above query in MySQL can be rewritten like this in SQLite: Ovanstående fråga i MySQL kan skrivas så här i 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! Jag hoppas att det hjälper någon!
Related posts: Relaterade tjänster:












































