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: Похожие сообщения:












































