SQLite, MySQL, PHP: Ternary operator (IF() statement) in MySQL and SQLite SQLite, MySQL, PHP: тернарний оператор (IF () заява) в MySQL і SQLite
Posted on 03. Опублікований 03. Feb, 2010 by Dragos in Coding , MySQL , PHP , SQLite Лютий, 2010 рік Dragos в кодування, 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). Під час роботи над Proxy Checker інструментом для одного з моїх проектів, я боровся про те, як виконати умовний запит на мою базу даних SQLite для оновлення колонки, тільки якщо його значення перевищує 0 (це було б безглуздо і в моєму випадку, щоб Сценарій оновити колонку з негативними значеннями).
In Mysql one would do like this (we use the ternary operator IF(to_check_expression>0,expression1,expression2) ): В MySQL можна було б зробити так (ми використовуємо потрійний оператор 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. Однак, в SQLite цей метод не буде працювати. Instead I had to use the case when (condition) then expression1 else expression2 end method. Замість цього я був змушений використовувати випадку, коли (умова), то expression1 іншому кінці expression2 методом.
The above query in MySQL can be rewritten like this in SQLite: Наведений вище запит в MySQL можна переписати як це в 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: Схожі повідомлення:












































